考虑如下:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="WrapTextBlock" Grid.Column="0" Text="123 456 789 0123 4456 123 123 123 123 1 23 123 " TextWrapping="Wrap" />
<TextBlock x:Name="NotWrapTextBlock" Grid.Column="1" Text="GGG" />
</Grid>
此 XAML 将允许WrapTextBlock
文本换行,这样做会占用所有空间并向右WrapTextBlock
推。NotWrapTextBlock
但我想要做的是WrapTextBlock
尽可能少地占用空间,紧随NotWrapTextBlock
其后WrapTextBlock
并用空白空间填充右侧。
这意味着以下内容:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="WrapTextBlock" Grid.Column="0" Text="123 456 789 0123 4456 123 123 123 123 1 23 123 " TextWrapping="Wrap" />
<TextBlock x:Name="NotWrapTextBlock" Grid.Column="1" Text="GGG" />
</Grid>
但这里的问题是,现在里面的文本WrapTextBlock
不会再换行了。
我的意思如下:
当文本太长时,它需要变形:
当文本足够短且不需要扭曲时: