我希望第3列中的文字换行并且没有水平滚动条。为什么这不起作用?
<ItemsControl x:Name="listMessages" ItemsSource="{Binding Messages}" Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2"/>
<ColumnDefinition Width="*" SharedSizeGroup="Column3"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column4"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Text1" />
<TextBlock Grid.Column="1" Text="Text2" />
<TextBlock Grid.Column="2" Text="Very long text that should wrap to the next line, but it doesn't work" TextWrapping="Wrap"/>
<TextBlock Grid.Column="3" Text="Text4" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
项目的宽度超过ItemsControl可用的宽度。与ListBox相同的问题。
我尝试在ItemsControl和Grid上添加ScrollViewer.HorizontalScrollbarVisibility=Disabled
,但这没有帮助。
答案 0 :(得分:1)
如果您未设置SharedSizeGroup
属性
<ColumnDefinition Width="*"/>
文字换行和共享尺寸组不能很好地结合在一起。您可能需要为MaxWidth
或ColumnDefinition
指定固定的TextBlock
。