我在WPF画布上遇到了一些我无法弄清楚的奇怪问题,希望你们中的一些大师可以:)
情况就是这样:在我的应用程序中,当用户点击列表中的项目时,我创建了一个新的画布,用元素填充它并将其作为选项卡添加到tabcontrol。
问题出现在哪里:我想以某种方式在画布上排列项目,但要做到这一点,我需要知道画布的大小。由于我刚刚创建了画布并将其放置到位,因此它还没有尺寸。所以我所做的是在其上调用“UpdateLayout()”。
这给了它正确的大小,但是当事情开始出错时:一旦我调用UpdateLayout(),应用程序的CPU使用率就会猛增到100%(但UI仍然是响应式的,并且它不是我的任何代码导致它的原因),画布内的所有控件都停止重新发送到事件!!
对可能发生的事情有所了解?
编辑:经过进一步检查后,我发现不是“UpdateLayout()”本身导致问题,实际上当我调用ActualWidth或ActualHeight
时答案 0 :(得分:0)
不是调用UpdateLayout,而是将您的编排代码包装在Dispatcher.BeginInvoke
中,以便稍后对其进行评估。