本文告诉大家,visualBrush 已知 bug ,希望大家使用 VisualBrush 时可以知道

  1. 如果把 VisualBrush 绑定的是在元素加入到视觉树前,那么在元素加入到视觉树之后移除视觉树,VisualBrush 就不会自动刷新

  2. 如果把没有加入视觉树的元素加入到 VisualBrush 绑定,之后把元素加入视觉树,再移除,再加入,这时可能 VisualBrush 不再刷新

  3. 如果在 VisualBrush 获取到元素之后,设置元素的 visibility 为 Collapsed 那么 VisualBrush 不会更新布局,详细请看The VisualBrush only refresh the visual but not the layout when the Visual visibility changes

  4. 如果元素绑定 VisualBrush 然后对元素使用 RenderTargetBitmap 就会让 VisualBrush 无法使用。

解决方法,设置 VisualBrush 的 Visual 为空再设置元素

var visual = visualBrush.Visual;
visualBrush.Visual = null;
visualBrush.Visual = visual;

参见:https://stackoverflow.com/a/3073378/6116637

https://stackoverflow.com/a/13182210/6116637

WPF 如何处理VisualBrush停止更新问题


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/wpf-VisualBrush-%E5%B7%B2%E7%9F%A5%E9%97%AE%E9%A2%98.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

微软最具价值专家


无盈利,不卖课,做纯粹的技术博客

以下是广告时间

推荐关注 Edi.Wang 的公众号

欢迎进入 Eleven 老师组建的 .NET 社区

以上广告全是友情推广,无盈利