У меня есть ListBox
, который имеет StackPanel
S, проведение TextBlock
и Image
по горизонтали, после чего ContentPresenter
. Это то, что выглядит как XAML:WP7 TextBlock Внутри ListBox не оборачивать текст
<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>
я устанавливаю ItemsSource
в ListBox
к ObservableCollection
внутри конструктора страницы. Все работает нормально до тех пор, пока текст Header
не станет слишком длинным, и в этом случае он не будет обертываться, как я указал. Как заставить текст TextBlock
обернуть текст?
Благодарим за помощь!
Но не должно ли это иметь свойство TextWrapping? Есть ли другой способ решить эту проблему? Например, использование Grids вместо StackPanels для хранения UIElements. – Praetorian
Я не уверен, как TextWrapping будет знать, что такое горизонтальная граница, если она не ограничена каким-то образом. –
Вы были правы, я исправил проблему, добавив событие 'SizeChanged' в' TextBox' и установив его ширину на основе ширины страницы. – Praetorian