获取 WPF 扩展器标头的高度
我需要获取 WPF Expander.Header 的高度,而不是整个 Expander,只是标题的高度。
没有属性可以获取它,因为 Expander.Header + Expander.Content 是 Expander.Height。
您将如何获取 Expander.Header Height ?
I need to get the Height of the WPF Expander.Header, not the whole Expander just the Height of the Header.
There is no property to get it because the Expander.Header + Expander.Content is the Expander.Height.
What would you do to get the Expander.Header Height ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的扩展器没有模板化,那就是一个可视化树:
您所需要做的就是获取该 ToggleButton。使用
VisualTreeHelper
很容易:编辑
另外,我想强调使用
ActualHeight
,而不是Height
,因为仅当在代码或 XAML 中显式设置时,Height
才不是double.IsNaN
(在 XAML 中为auto
)If your expander isn't templated, that's a Visual tree:
All you need is to get that ToggleButton. It's easy using
VisualTreeHelper
:Edit
Also, I'd like to accent on using
ActualHeight
, notHeight
, becauseHeight
is notdouble.IsNaN
(in XAML,auto
) only if set explicitly in code or XAML我不知道有什么方法可以准确地做到这一点(也许通过反射?),但您可以尝试使用两个扩展器。一种只有标题,一种只有 ContentPresenter。您可以将第一个扩展器的 IsExpanded 属性绑定到第二个扩展器的 IsExpanded 属性。这将使它们看起来像是一个单一的扩展器。
我不确定你到底想实现什么目标。
I don't know of a way to do that exactly (maybe through reflection?), but you could try using two expanders. One with just a header and one with just a ContentPresenter. You could bind the IsExpanded property of the first expander to the IsExpanded property of the second one. This would make them appear to be a single expander.
I'm not sure exactly what you're trying to accomplish though.