Ich habe ein ListBox
die StackPanel
s hat einen horizontal und einen TextBlock
Image
halten, gefolgt von einem ContentPresenter
. Dies ist, was die XAML wie folgt aussieht:WP7 Textblock innerhalb einer ListBox nicht Textumbruch
<Grid x:Name="ContentPanel"
Grid.Row="1"
Margin="12,0,12,0">
<ListBox x:Name="MainListBox"
Margin="12,0,12,0"
SelectionChanged="MainListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu x:Name="ContextMenu"
Opened="ContextMenu_Opened">
<toolkit:MenuItem Header="edit"
Tag="edit"
Click="MenuItem_Click" />
<toolkit:MenuItem Header="delete"
Tag="delete"
Click="MenuItem_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Left">
<!-- **** This text won't wrap **** -->
<TextBlock Text="{Binding Header}"
TextWrapping="Wrap"
Style="{StaticResource PhoneTextNormalStyle}"
Foreground="{StaticResource PhoneAccentBrush}" />
<Image Source="/image.png"
Visibility="{Binding ImageVisibility}" />
</StackPanel>
<ContentPresenter Content="{Binding Content}"
HorizontalAlignment="Stretch" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment"
Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Grid>
ich die ItemsSource
des ListBox
zu einem ObservableCollection
innerhalb der Seite Konstruktor setzen. Alles funktioniert gut, bis der Header
Text zu lang wird, in diesem Fall wickelt er nicht, wie ich es spezifiziert habe. Wie kann ich die TextBlock
zwingen, den Text zu wickeln?
Danke für Ihre Hilfe!
Aber sollte nicht die TextWrapping-Eigenschaft dafür sorgen? Gibt es eine andere Möglichkeit, dieses Problem zu lösen? Verwenden Sie beispielsweise Grids anstelle von StackPanels, um die UIElements zu speichern. – Praetorian
Ich bin nicht sicher, wie das TextWrapping wissen würde, was die horizontale Grenze ist, wenn es nicht irgendwie eingeschränkt ist. –
Sie hatten Recht, ich habe das Problem behoben, indem ich ein 'SizeChanged' -Ereignis zur' TextBox' hinzugefügt und seine Breite basierend auf der Seitenbreite festgelegt habe. – Praetorian