代码中的WPF自动高度

Kar*_*gha 93 c# wpf xaml

如何将HeightC#代码中WPF控件的属性值设置为" Auto"?

<Grid.RowDefinitions>
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
    <RowDefinition Height="Auto" />
    <RowDefinition />
</Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)

我想在后面的代码中重现此行为.有任何想法吗?

Zac*_*son 134

也许这个链接会对你有所帮助.

有时,您可能希望以编程方式将WPF元素的高度或宽度设置为自动代码.为此,只需使用Double.NaN(非数字)值.

例如,在C#中:

this.txtName.Width = Double.NaN;

  • 尼姆罗德的答案更明确,更容易理解. (2认同)

Nim*_*ory 105

您可以使用

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

  • 这个答案和接受的答案之间有什么不同吗?因为如果没有,这应该是不绕过框架的最佳答案. (8认同)
  • 根据反射器,GridLength.Auto是新的GridLength(1.0,GridUnitType.Auto); 因此不完全等同于接受的答案,但更具可读性. (3认同)