如何在不使用TextBlock的情况下在ListBox中包装长文本。我的代码如下:
public Sample()
{
InitializeComponent();
quotes.Add("LooooooooooooooooooooooooooongTeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeext");
myListbox.DataContext = quotes;
}
引号是一个列表。
XAML:
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1" HorizontalScrollBarVisibility="Disabled">
<Grid x:Name="ContentPanel" Margin="12,0,12,0" Grid.Column="1">
<ListBox x:Name="myListbox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Height="600" ItemsSource="{Binding}" Margin="10,4,10,3">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Grid>
</ScrollViewer>
我也尝试过使用WrapPanel,但不起作用。
答案 0 :(得分:1)
ItemsPanel
控制ListBox如何在某些布局中排列ListBoxItems。尝试定义ItemTemplate
而不是ItemsPanel
,ItemTemplate
控制每个项目中的数据显示方式,包括是否包装。对不起,我在这里使用TextBlock,因为我看不出为什么要避免使用TextBlock。它甚至很可能(现在还没有证明这一点)TextBlock是ListBox的默认ItemTemplate。
<ListBox x:Name="myListbox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Height="600" ItemsSource="{Binding}" Margin="10,4,10,3">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>