我有这样的事情:
<ListBox ItemsSource="{Binding List}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Property}" TextWrapping="Wrap" Grid.Column="0"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我遇到的问题是当文本太长时,TextBlock 会扩展 Grid 列(和 Listbox),而不是按预期包装它。也许我不完全理解网格的星大小概念,但我看到它的方式,因为列宽设置为“1*”,这意味着“剩余可用空间”,文本块不应该尝试扩展超出这个宽度,应该换行。
那么我该如何解决这个问题呢?顺便说一句,我需要 Grid(或其他容器),因为除了 Textblock 之外还有其他组件。ItemContainerStyle 部分也在那里,因此 Listbox 元素占据了整个空间。
提前致谢!