【发布时间】:2013-06-03 15:31:06
【问题描述】:
考虑如下:
<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 中的文本不会再换行了。
我的意思如下:
文本太长时需要变形:
当文本足够短且不需要变形时:
【问题讨论】:
标签: wpf xaml silverlight textblock