当我将 WPF DataGrid 的 ColumnHeaderHeight 设置为 Auto (double.NaN) 时,如何获取列标题的实际呈现高度?
我似乎无法在 DataGrid 类中找到该属性。
最佳答案
您可以通过在可视化树中搜索 DataGridColumnHeadersPresenter
并阅读其 ActualHeight
属性来获取它。
var headersPresenter = FindVisualChild<DataGridColumnHeadersPresenter>(dataGrid);
double actualHeight = headersPresenter.ActualHeight;
这是 FindVisualChild 方法。它也可以作为扩展方法实现。
public static T FindVisualChild<T>(DependencyObject current) where T : DependencyObject
{
if (current == null) return null;
int childrenCount = VisualTreeHelper.GetChildrenCount(current);
for (int i = 0; i < childrenCount ; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(current, i);
if (child is T) return (T)child;
T result = FindVisualChild<T>(child);
if (result != null) return result;
}
return null;
}
关于c# - WPF DataGrid 实际 ColumnHeaderHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905923/