记录WPF 设置控件VisualCacheMode = new BitmapCache()会导致控件渲染不出来的问题
首选设置VisualCacheMode = new BitmapCache(),是为了让WPF控件渲染的更快,针对频繁变化的UI元素使用这个属性提高渲染速度。
下面是微软官网关于VisaulCacheMode关于如何通过使用 BitmapCache 类来提高复杂 UIElement的渲染性能介绍。
Visual.VisualCacheMode 属性 (System.Windows.Media)
BitmapCache 类 (System.Windows.Media)
问题:
在WPF第一个窗口中点击显示第二个窗口的时候,第二个窗口若是有控件使用了BitmapCache。那么在按下Win+L锁屏或者弹出UAC提示之后,第二个窗口上使用BitmapCache的控件就无法渲染显示出来。
现在我遇到的问题就是第一个窗口点击显示白板书写窗口的时候,白板书写笔迹使用了BitmapCache的笔迹就无法渲染出来。
同样的问题在stack overflow上有提问:https://stackoverflow.com/questions/3632361/bitmapcache-causes-wpf-application-to-lock-up
WPF官方项目中的Issues:Regarding WPF BitmapCache Issue + R&D + Solutions · Issue #8919 · dotnet/wpf
规避措施:
使用BitmapCache的控件在都在主窗口上。子窗口建议还是不要使用VisualCacheMode = new BitmapCache()了。

浙公网安备 33010602011771号