TextBlock TextWrapping pas d'emballage à l'intérieur de StackPanel
J'ai un StackPanel, mais la ligne suivante :
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Notes}" TextWrapping="Wrap" />
n'est pas d'Habillage du Texte.
<StackPanel Orientation="Vertical">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" Grid.Column="0">
<TextBlock FontWeight="Bold" Padding="0,0,5,0" Text="{Binding Path=Id, StringFormat='#\{0\}'}" />
<TextBlock FontWeight="Bold" Padding="0,0,5,0" Text="{Binding Path=Name}" />
</DockPanel>
<TextBlock Grid.Row="0" Grid.Column="4" FontWeight="Bold" Text="{Binding Path=Time, StringFormat={}{0:HH:mm}}" />
<Image
Grid.Row="0"
Grid.Column="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Source="{Binding Path=Image, Mode=OneWay, Converter={StaticResource ImageConverter}}" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Notes}" TextWrapping="Wrap" />
<Image
Grid.Row="1"
Grid.Column="4"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Source="{Binding Path=Picture, Mode=OneWay, Converter={StaticResource PictureConverter}}" />
</Grid>
</StackPanel>
La StackPanel
Orientation est définie sur "Verticale", mais le TextBlock
n'est pas en hériter.
Où vais-je tort?
source d'informationauteur Joe.Net
Vous devez vous connecter pour publier un commentaire.
Votre problème à l'aide de la
StackPanel
qui permet à ses enfants de remplir tout l'espace disponible - leStackPanel
s'étire en fonction de la taille de son contenu. Essayez de supprimer leStackPanel
et garder juste leGrid
- cela vous permettra de limiter la taille de ses enfants à l'espace utilisé par la Grille.Si ce n'est pas assez dans la mise en page que vous avez construit, essayez de définir une MaxWidth sur le
TextBox
que les besoins d'emballage.Aujourd'hui la source de votre problème a été également le fait que votre
TextBox
a été inséré dans la première Colonne de laGrid
qui avait une taille infinie (Width="Auto"). Ainsi, réglage de la Grille.Column="7" à laTextBox
fait le truc que tu voulais (habillage du texte). Voici le code révisé: