首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取WPF Expander标题的高度

获取WPF Expander标题的高度
EN

Stack Overflow用户
提问于 2010-12-26 05:57:46
回答 2查看 2.2K关注 0票数 6

我需要得到的WPF Expander.Header的高度,而不是整个扩展器只是头部的高度。

因为Expander.Header + Expander.Content是Expander.Height,所以没有属性来获取它。

你会怎么做来获得Expander.Header的高度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-26 06:25:50

如果你的扩展器没有模板化,那就是一个可视化的树:

代码语言:javascript
复制
Expander { Border { DockPanel { ToggleButton, ContentPresenter {...} } } }

你所需要的就是得到那个ToggleButton。VisualTreeHelper使用起来很简单

代码语言:javascript
复制
var border = VisualTreeHelper.GetChild(expander, 0);
var dockpanel = VisualTreeHelper.GetChild(border, 0);
var togglebutton = VisualTreeHelper.GetChild(dockpanel, /*0*/); // it may be not 0th, so please enumerate all children using VisualTreeHelper.GetChildrenCount(dockpanel) and find that ToggleButton
return togglebutton.ActualHeight;

编辑

此外,我还想强调使用ActualHeight,而不是Height,因为只有在代码或XAML中显式设置Height时,它才不是double.IsNaN (在XAML中是auto

票数 5
EN

Stack Overflow用户

发布于 2010-12-26 06:13:56

我不知道有什么方法可以做到这一点(也许是通过反射?),但是你可以尝试使用两个扩展器。一个只有一个头,一个只有一个ContentPresenter。您可以将第一个扩展器的IsExpanded属性绑定到第二个扩展器的IsExpanded属性。这将使它们看起来像是单个扩展器。

不过,我不太确定你到底想要实现什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4531839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档