我有一个Expander控件,我需要计算它的边界而没有不可见的元素和边距。它通常可以由VisualTreeHelper.GetDescendantsBounds
完成。但似乎通过VisualTreeHelper计算的rect不依赖于扩展器状态。例如:
http://i.piccy.info/i5/58/39/273958/collapsed.jpg
(我无法发布图片。抱歉)
与展开状态(图像上的浅绿色矩形)相同的结果。有人知道如何解决这个问题吗?
答案 0 :(得分:0)
Expander控件将其内容的可见性设置为Collapsed,这意味着在布局期间不会考虑它,并且不会包含在GetDescendantBounds中。但是,扩展器可以被布局引擎强制放大,而扩展器自身的大小包含在GetDescendantBounds中。
尝试在扩展器上设置VerticalAlignment="Top"
。默认值为Stretch
,如果父级有更多可用空间,则允许它增加大小。另外,请确保您没有明确设置Height
属性。
答案 1 :(得分:0)
这是sample application。此样式应用于TreeView控件及其项目。但问题不在于风格。