我在WPF的ItemsControl中使用IsSharedSizeScope
以保持每行的寬度相同。Grid.IsSharedScopeSize與WPF Grid中的*列不兼容
不幸的是,這與Width='*'
列不兼容,這會使'A B 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
那麼它的工作,但行是不平衡的。
是否有任何聰明的方法來實現這一點,或者我將不得不在'A B C'文本列上手動設置寬度?
(注:這實際上不是顯示一個ItemsControl內部)
謝謝。我只是意識到一種方法來實現我所需要的,但它只在最後一列是*列時才起作用。看到我的答案 –