【发布时间】:2014-06-17 08:44:01
【问题描述】:
我有两个自定义 WPF 控件(带有自定义呈现逻辑)放在彼此之上(透明背景和东西)。在某些时候,我想重新绘制这些控件。我的第一个想法是打电话:
foreach(var control in Controls)
{
control.InvalidateVisual();
}
但这并不完全奏效。我的意思是它确实强制渲染我的控件,但视觉更新不会同时发生。控件一个一个地更新,这看起来不好看并且可能导致混乱(如果一个控件显示更新的视觉效果,而另一个控件仍然显示旧的视觉效果)。 InvalidateVisual 方法的文档真的很差,但我想这是一个异步方法,这就是我遇到这个问题的原因。
那么问题来了:有没有办法同步多个控件的渲染?除了创建一个包含所有渲染逻辑的大型控件(我想避免这种情况)。
【问题讨论】: