以下TextBox:
<TextBlock Text="A really long sentence" TextTrimming="WordEllipsis"
TextWrapping="WrapWithOverflow" Height= "40" />
高40像素,内容增长时不会调整大小。只需从上面的XAML中删除Height
属性即可添加此功能。现在我需要以编程方式“删除”此属性,即默认情况下我的TextBox高度为40像素,但是当单击某个特定按钮时,我需要展开TextBox以适应其所有内容。如何删除高度属性?我尝试将其设置为null,但这不起作用。
答案 0 :(得分:0)
您可以使用Double.NaN
,这会将高度设置为相当于Auto
TextBoxWidthProperty = double.NaN;
答案 1 :(得分:0)
您应该将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";
}