当我将 WPF DataGrid 的 ColumnHeaderHeight 设置为 Auto (double.NaN) 时,如何获取列标题的实际呈现高度?
我似乎无法在 DataGrid 类中找到该属性。
您可以通过在可视化树中搜索 DataGridColumnHeadersPresenter
并阅读其 ActualHeight
属性来获取它。
var headersPresenter = FindVisualChild(dataGrid);
double actualHeight = headersPresenter.ActualHeight;
这是 FindVisualChild 方法。它也可以作为扩展方法实现。
public static T FindVisualChild(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(child);
if (result != null) return result;
}
return null;
}
Tôi là một lập trình viên xuất sắc, rất giỏi!