如果在自定义WPF控件中调用InvalidateVisual
,什么时候进行实际的布局评估和渲染过程?
立即完成-与WinForms中类似-当我完成处理时?
最佳答案
在线帮助回答您的问题:
InvalidateVisual的在线帮助:
此方法在内部调用InvalidateArrange。
InvalidateArrange的在线帮助:
使元素的排列状态(布局)无效。无效后,元素将更新其布局,除非随后由UpdateLayout强制,否则布局将异步发生。
换句话说:InvalidateVisual
不会立即生效;它会等到您当前的代码完成为止(除非您已调用UpdateLayout)。
您还可以查看Microsoft的参考源:http://referencesource.microsoft.com/#q=UIElement.InvalidateArrange。您会看到InvalidateArrange()
不会调用任何阻止代码。它立即返回。