C# 获取元素的最佳方式';s高度
代码为给定Datatemplate和要绑定到内容的对象的元素获取所需的高度。然而,这真的很慢。是否有人有其他选择,或如何优化此代码的想法C# 获取元素的最佳方式';s高度,c#,wpf,C#,Wpf,代码为给定Datatemplate和要绑定到内容的对象的元素获取所需的高度。然而,这真的很慢。是否有人有其他选择,或如何优化此代码的想法 public static Double GetDesiredHeight(Object content, DataTemplate dataTemplate) { try { ContentPresenter element = new ContentPresenter {
public static Double GetDesiredHeight(Object content, DataTemplate dataTemplate)
{
try
{
ContentPresenter element = new ContentPresenter
{
Content = content,
ContentTemplate = dataTemplate,
};
element.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
var result = element.DesiredSize.Height;
element.ContentTemplate = null;
return result;
}
catch (Exception)
{
return 0;
}
}
您是否尝试过使用
ActualHeight
属性而不是Height
属性
尝试更改此行:
var result = element.DesiredSize.ActualHeight;
所需大小的类型为
System.Windows.size
。它没有实际的height属性。代码工作并返回正确的值。但是,在渲染之前使用datatemplate和调用measure创建元素的速度很慢。我用它来动态分页模板元素。我想我可以在布局过程之后分页,这样就不需要手动计算元素的尺寸。