C#Wpf数据网格最后一列宽度=“*";折叠其他列

本文关键字:quot 其他 折叠 一列 网格 数据网 数据 最后 C#Wpf | 更新日期: 2023-09-27 18:28:38

我使用的是一个相对于窗口大小水平拉伸的数据网格。

因为我想去掉右侧生成的额外列,所以我将除最后一列外的所有列大小都设置为"自动"。我将最后一列的大小设置为"*"。

最后我去掉了右侧生成的多余列。

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

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

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

谢谢。。

C#Wpf数据网格最后一列宽度=“*";折叠其他列

尝试使用以下代码:

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++ ;
        }
    }

确保将所有列的HorizontalScrollVisibility保持为Auto