Wpf 如何计算扩展器的边界框?

Wpf 如何计算扩展器的边界框?,wpf,expander,visualtreehelper,Wpf,Expander,Visualtreehelper,我有一个扩展控件,我需要计算它的边界,没有不可见的元素和边距。通常可以通过VisualTreeHelper.getDegenantsBounds完成。但似乎rect是由VisualTreeHelper计算的,它不依赖于扩展器状态。例如: (我不能发布图片。对不起) 与展开状态的结果相同(图像上的浅绿色矩形)。有人知道如何解决这个问题吗?Expander控件将其内容的可见性设置为Collapsed,这意味着它在布局期间不会被考虑,也不会包含在GetGenderantBounds中。但是,布局引擎

我有一个扩展控件,我需要计算它的边界,没有不可见的元素和边距。通常可以通过
VisualTreeHelper.getDegenantsBounds
完成。但似乎rect是由VisualTreeHelper计算的,它不依赖于扩展器状态。例如:

(我不能发布图片。对不起)


与展开状态的结果相同(图像上的浅绿色矩形)。有人知道如何解决这个问题吗?

Expander控件将其内容的可见性设置为Collapsed,这意味着它在布局期间不会被考虑,也不会包含在GetGenderantBounds中。但是,布局引擎可以强制扩展器具有更大的大小,并且扩展器自身的大小包含在GetGendernantBounds中


尝试在扩展器上设置垂直对齐=“顶部”。默认值为
拉伸
,如果父级有更多可用空间,则允许其增大大小。还要确保没有显式设置
Height
属性

这是最重要的。样式在此应用于TreeView控件及其项。但问题不在于款式。

谢谢您的回答!但扩展边界矩形似乎不依赖于垂直对齐(我已尝试将此属性更改为Top)。我将尝试制作示例应用程序,并将其附加到问题中。