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
と機能しますが、行が不均一になります。
これを達成するための賢い方法はありますか、または「AB C」テキスト列の幅を手動で設定する必要がありますか?
(注: これは実際には、表示されていない ItemsControl 内にあります)