代码中的WPF自动高度

时间:2010-03-17 00:08:09

标签: c# wpf xaml

如何将C#代码中WPF控件的Height属性的值设置为“Auto”?

<Grid.RowDefinitions>
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
</Grid.RowDefinitions>

我想在后面的代码中重现这种行为。有什么想法吗?

3 个答案:

答案 0 :(得分:130)

也许this link会帮助你。

  

有时,您可能想要   以编程方式设置高度或   WPF元素的宽度为自动输入   码。要做到这一点,只需使用   Double.NaN(非数字)值。

     

例如,在C#中:

     

this.txtName.Width = Double.NaN;

答案 1 :(得分:95)

您可以使用

RowDefinition rd = new RowDefinition();  
rd.Height = GridLength.Auto;  
ContentGrid.RowDefinitions.Add(rd);

答案 2 :(得分:4)

虽然问题已通过代码隐藏(如所问)得到解答,但对于没有 "auto" 的基本控件属性,这里有相同的 XAML 解决方案:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

Height="{x:Static sys:Double.NaN}"

发布是因为 Google 在搜索 TextBox 的 XAML 解决方案时将我带到这里(自动不存在)。