我能够弄清楚如何使用鼠标扩展和收缩datagrid列。但是在收缩和扩展列之后,单元格的高度不会降低。

如何带出单元格(或行)的原始高度?
你能看一下吗?

谢谢
AJ

最佳答案

由于无法在SO上找到此解决方案,因此在这里输入mine。

您需要找到一个导致行大小错误的事件。就我而言,它只是上下滚动(但是我已经在几种不同类型的事件中看到了这一点)。这是使您的数据网格调整大小的代码:

    /// <summary>
    /// Reset datagrid row height
    /// </summary>
    /// <param name="row"></param>
    public void ResetRowHeight(DataGrid grid, DataGridRow row)
    {
        // only for autosize rows
        if (!double.IsNaN(row.Height)) return;

        // store current rowheight
        double rowheight = grid.RowHeight;

        // fore recalculating row height
        grid.RowHeight = 0;
        row.UpdateLayout();

        // restore rowheight
        grid.RowHeight = rowheight;
        row.UpdateLayout();
    }


其中grid是您的数据网格,row是需要重置的行。

现在,只需查找引起问题的事件,应该就是它。

关于c# - 调整Silverlight datagrid行的单元格高度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2685208/

10-11 20:49