![]() |
1
57
WPF有一个内置的机制来
我先回答你的题目问题 为什么? 你的装饰不一致重新渲染,然后解释修复它的最佳方法。 为什么装饰不重新渲染
每当Adornerlayer收到LayoutChanged通知时,它会扫描每个Adornerlayer,以查看
在这种情况下,通常会发生的情况是,首先对控件进行测量,然后进行排列,然后进行呈现。事实上,WPF试图使这成为最常见的情况,因为它是最有效的序列。但是,在许多情况下,控件可能会在重新测量之前被重新排列和/或重新定位。这是WPF中事件的合法顺序(允许灵活的布局技术),但它并不常见,因此通常不进行测试。
a正确实施
在您的情况下,装饰器的大小明显影响渲染。大小属性不是
你的情况可能是这样的:
你能做些什么来修复它
当然,解决方法是在
这样做将使您的装饰一贯遵守WPF的所有规则,因此它将在所有情况下按预期工作。这也是最有效的解决方案,因为
|
![]() |
2
1
您需要在面板上调用调度器。向文本框sizeChanged事件添加处理程序:
这基本上来自于这篇文章: http://geekswithblogs.net/NewThingsILearned/archive/2008/08/25/refresh--update-wpf-controls.aspx |