Partage
  • Partager sur Facebook
  • Partager sur Twitter

[WP7] DataTemplate et TextWrapping

Sujet résolu
    6 mai 2012 à 16:53:34

    Bonjour à tous,

    Je rencontre actuellement un soucis de TextWrapping dans une ListBox que je bind.

    Voici le code XAML de la ListBox :



    <ListBox Name="lst">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <Image Source="{Binding Img}" Width="100" Height="100" />
                        <StackPanel Margin="12,0,0,0" VerticalAlignment="Center"> 
                            <TextBlock Text="{Binding txt1}" TextWrapping="Wrap"/>
                            <TextBlock Text="{Binding txt2}" TextWrapping="Wrap" />
                        </StackPanel>
                     </StackPanel>
                     <Rectangle Width="480" Margin="0,15" Height="1" Stroke="White" StrokeThickness="1" VerticalAlignment="Top" Fill="White" />
                 </StackPanel>
             </DataTemplate>
         </ListBox.ItemTemplate>
    </ListBox>
    


    Le but étant d'obtenir la disposition suivante :

    ________________________________
    |       | Txt1                  |
    | Photo | Txt2 [ligne 1]        |
    |       | Txt2 [ligne 2]        |
    |_______|_______________________|
    


    Le problème c'est que le textWrapping ne fonctionne pas et le texte de mes textBlock sort de l'écran sans pour autant faire un retour à la ligne.

    Si pas exemple dans mon dataTemplate je mets uniquement le stackPanel des textblocks, ça fonctionne sans soucis.

    Quelqu'un aurait une solution pour imbriquer les différents stackPanel et faire fonctionner le textWrapping ?
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2012 à 17:36:24

      C'est ton StackPanel horizontal qui pose problème, car par nature il ne limite pas son contenu en largeur. C'est donc plutôt une Grid qu'il te faut ici :

      <ListBox Name="lst">
          <ListBox.ItemTemplate>
              <DataTemplate>
                  <StackPanel>
                      <Grid>
                          <Grid.ColumnDefinitions>
                              <ColumnDefinition Width="Auto" />
                              <ColumnDefinition Width="*" />
                          </Grid.ColumnDefinitions>
                          <Image Source="{Binding Img}" Width="100" Height="100" />
                          <StackPanel Grid.Column="1" Margin="12,0,0,0" VerticalAlignment="Center"> 
                              <TextBlock Text="{Binding txt1}" TextWrapping="Wrap"/>
                              <TextBlock Text="{Binding txt2}" TextWrapping="Wrap" />
                          </StackPanel>
                       </Grid>
                       <Rectangle Width="480" Margin="0,15" Height="1" Stroke="White" StrokeThickness="1" VerticalAlignment="Top" Fill="White" />
                   </StackPanel>
               </DataTemplate>
           </ListBox.ItemTemplate>
      </ListBox>
      
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2012 à 0:41:50

        Hehe, j'avais déjà résolu mon problème :)

        Et effectivement je suis passé par un grid ^^
        • Partager sur Facebook
        • Partager sur Twitter

        [WP7] DataTemplate et TextWrapping

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown