考虑如下:
<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不会再换行了。
我的意思如下:
当文本太长时,它需要变形:
当文本足够短且不需要扭曲时:

