WPF c#数据网格设置单独的行高度

本文关键字:单独 高度 设置 网格 数据 数据网 WPF | 更新日期: 2023-09-27 18:09:42

我对WPF和c#都很陌生。我试图创建一个数据网格,在那里我可以以编程方式设置各个行的高度。

似乎可以改变所有行的高度,但我希望这些行彼此具有不同的高度。

有谁知道实现这个的方法吗?(我在想我可以将行高度设置为自动,并在未使用的列中放置一个不可见的TextBox。我可以改变未使用的文本框的高度编程)

WPF c#数据网格设置单独的行高度

最简单的方法可能是在DataGrid中处理这个问题。LoadingRow事件,在行被初始化后立即引发。

要做到这一点,只需在xaml代码中向数据网格添加一个事件处理程序:
<DataGrid LoadingRow="DataGrid_LoadingRow"></DataGrid>

并在代码中声明此事件处理程序,以通过Height属性单独管理行高度:

private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
    DataGridRow row = e.Row;
    row.Height = 50; //put your height here
}

EKrueger

非常感谢您的回复。

但是,您的技术仅在创建数据网格时才会发生。我需要一些可以在不同时间调用的东西,这样我就可以定期调整行大小。

我一直在寻找,这是我找到的解决方案。

欢呼。

    马特
  • private void resizeDataGridRowHeight() {
        int a = boundDataGrid.Items.Count;
        int calibrationRowHeight = 28;
        for (int i = 0; i < a; i++) {
            myRowHeight = ListofObjectsThatEachRepresentAParameter.ListOfDataTableRows[i].ListOfCalibrationRows.Count * calibrationRowHeight;
            DataGridRow row = boundDataGrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
            row = boundDataGrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
            row.Height = myRowHeight;
        }
    }