您应该设置Height
为double.NaN
( msdn ) 并使用Grid
控制。
除了可接受的 Double 值之外,此属性还可以是 Double.NaN。这是您在代码中指定自动调整大小行为的方式。在 XAML 中,您将值设置为字符串“Auto”(不区分大小写)以启用自动调整大小行为。自动调整大小行为意味着元素将填充可用的高度。但是请注意,特定控件经常通过其默认主题样式提供默认值,这些样式将禁用自动调整大小行为,除非专门重新启用它。
例子:
<Grid Background="Red">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition MinHeight="40" Height="Auto" />
</Grid.RowDefinitions>
<Button Content="Expand" Click="Button_Click_2" />
<TextBlock x:Name="tbSentence" Text="A really long sentence" TextTrimming="WordEllipsis"
TextWrapping="WrapWithOverflow" Height= "40" Background="Orange" Grid.Row="1" />
</Grid>
后面的代码:
private void Button_Click_2(object sender, RoutedEventArgs e)
{
tbSentence.Height = double.NaN;
tbSentence.Text = @"A really long sentence
A really long sentence
A really long sentence";
}