确保控件在WPF中具有大小:奇怪的问题

时间:2011-03-26 10:36:52

标签: .net wpf

我在WPF画布上遇到了一些我无法弄清楚的奇怪问题,希望你们中的一些大师可以:)

情况就是这样:在我的应用程序中,当用户点击列表中的项目时,我创建了一个新的画布,用元素填充它并将其作为选项卡添加到tabcontrol。

问题出现在哪里:我想以某种方式在画布上排列项目,但要做到这一点,我需要知道画布的大小。由于我刚刚创建了画布并将其放置到位,因此它还没有尺寸。所以我所做的是在其上调用“UpdateLayout()”。

这给了它正确的大小,但是当事情开始出错时:一旦我调用UpdateLayout(),应用程序的CPU使用率就会猛增到100%(但UI仍然是响应式的,并且它不是我的任何代码导致它的原因),画布内的所有控件都停止重新发送到事件!!

对可能发生的事情有所了解?

编辑:经过进一步检查后,我发现不是“UpdateLayout()”本身导致问题,实际上当我调用ActualWidth或ActualHeight

1 个答案:

答案 0 :(得分:0)

不是调用UpdateLayout,而是将您的编排代码包装在Dispatcher.BeginInvoke中,以便稍后对其进行评估。