我IsSharedSizeScope
在 WPF 中的 ItemsControl 中使用以保持每行的宽度相同。
不幸的是,这与列不兼容Width='*'
,这使得“AB C”文本列从页面末尾溢出。
<Border BorderBrush="Red" BorderThickness="1">
<StackPanel Grid.IsSharedSizeScope="True">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="G1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="G2" />
<ColumnDefinition Width="*" SharedSizeGroup="G3" />
</Grid.ColumnDefinitions>
<TextBlock Text="Col0" Grid.Column="0" Margin="0,0,5,0"/>
<TextBlock Text="Col1" Grid.Column="1" Margin="0,0,5,0"/>
<TextBlock Text="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" TextWrapping="Wrap" Grid.Column="2"/>
</Grid>
</StackPanel>
</Border>
这不会换行,但是如果您更改Grid.IsSharedScopeSize
为false
then 它确实可以工作,但是行不均匀。
有什么聪明的方法可以实现这一点,还是我必须在“AB C”文本列上手动设置宽度?
(注意:这实际上是在未显示的 ItemsControl 内部)