4

我正在使用相对于窗口大小水平延伸的数据网格。

因为我想摆脱右侧生成的额外列,所以我将所有列大小设置为“自动”,除了最后一列。我将最后一列的大小设置为“*”。

最后我摆脱了右侧生成的额外列。

但是现在,当我用信息填充数据网格时,除了最后一列之外的所有列大小都会折叠到它们的标题宽度。

为什么列有标题的宽度?我将它们的宽度设置为“自动”,它们也应该尊重它们的单元格大小。

注意:我不想为列设置 MinWidths,它们应该根据列和单元格大小自动调整大小。

谢谢..

4

1 回答 1

3

try using the following code:

private void FitToContent()
    {
        int numCols ;
        int i ;

        numCols = dg.Columns.Count() ;
        i = 0 ;

        // where dg is your data grid's name...
        foreach (DataGridColumn column in dg.Columns)
        {
            if(i < numCols - 1)
            { 
                //if you want to size ur column as per the cell content
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.SizeToCells);
                //if you want to size ur column as per the column header
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.SizeToHeader);
                //if you want to size ur column as per both header and cell content
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Auto);
            }
            else
            {
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Star);
            }
            i++ ;
        }
    }

Make sure you keep HorizontalScrollVisibility to Auto for all columns

于 2013-08-22T21:50:01.267 回答