如果我在自定义WPF控件中调用InvalidateVisual
,那么实际的布局评估和渲染过程何时发生?
当我完成处理时,立即或 - 与WinForms类似 -
答案 0 :(得分:3)
在线帮助解答了您的问题:
InvalidateVisual的在线帮助:
此方法在内部调用InvalidateArrange。
InvalidateArrange的在线帮助:
使元素的排列状态(布局)无效。失效后,元素将更新其布局,将异步发生,除非随后由UpdateLayout强制执行。
换句话说:InvalidateVisual
没有立即生效;它会一直等到你当前的代码完成(除非你打电话给UpdateLayout)。
您还可以查看Microsoft的参考资料来源:http://referencesource.microsoft.com/#q=UIElement.InvalidateArrange。您会看到InvalidateArrange()
没有调用任何阻止代码;它会立即返回。