首页 > 解决方案 > WPF C#设置为自动后获取网格高度

问题描述

所以,我试着做一个Grid

public GridDisplay(String title, int rows, int columns) 
{
    MyGrid = new Grid();
    this.rows = rows;
    this.columns = columns;


    MyGrid.Margin = new Thickness(12, 12, 12, 12);

    for (int x = 0; x < columns; x++) 
    {
        ColumnDefinition c = new ColumnDefinition();
        c.Width = GridLength.Auto;
        MyGrid.ColumnDefinitions.Add(c);
    }
    
    for (int y = 0; y < rows; y++) 
    {
        RowDefinition r = new RowDefinition();
        r.Height = GridLength.Auto;
        MyGrid.RowDefinitions.Add(r);
    }
}

在将Width每个ColumnHeight每个的 设置Row为之后auto,我想在构建Grid. 我怎么做?我试过这些:

g.RenderSize.Width;
g.RenderSize.Height;
g.ColumnDefinitions[0].Width
g.ColumnDefinitions[0].ActualWidth
g.ColumnDefinitions[0].MinWidth

这些都没有给出正确的网格渲染值。

标签: c#wpf

解决方案


基本上,在渲染实际对象并计算自动值Grid之前,不会计算高度或宽度。InitializeComponent();


推荐阅读