DataGrid,Star,Auto,布局

时间:2011-09-27 18:56:11

标签: c# wpf

我有DataGrids在某些网格折叠时调整大小。在默认情况下,我希望列中有两行如下:

        <Grid.RowDefinitions>
            <RowDefinition Height="0.65*"/>            
            <RowDefinition Height="0.35*"/>
        </Grid.RowDefinitions>

当我在后面的代码中调整大小时,我似乎只能选择高度/宽度类型:

.RowDefinitions[i].Height = GridLength.Auto;
.ColumnDefinitions[i].Width = new GridLength(1, GridUnitType.Star);

有没有办法可以恢复原来的.65 *和.35 *?感谢。

2 个答案:

答案 0 :(得分:1)

以下是什么问题?

.RowDefinitions[0].Height = new GridLength(0.65, GridUnitType.Star);
.RowDefinitions[1].Height = new GridLength(0.35, GridUnitType.Star);

这相当于:

<RowDefinition Height="0.65*"/>            
<RowDefinition Height="0.35*"/>

答案 1 :(得分:0)

.65*可以写成new GridLength(.65, GridUnitType.Star);

GridLength构造函数中的第一个参数是*前面的数字,而Height="*"实际上是Height="1*"