在XAML中显示过时/不推荐使用的类用法
本文关键字:用法 XAML 显示 过时 | 更新日期: 2023-09-27 18:01:26
上下文
在我们正在开发的WPF应用程序中,由于在资源库中使用了DropShadowBitmapEffect
,导致了相当大的内存泄漏。
下拉阴影被一些UserControl
和我们所有的菜单用来在窗口的实际内容上投射阴影,例如:
<DropShadowBitmapEffect x:Key="PopupDropShadow" ShadowDepth="1.5" Softness="0.15" />
...
<Rectangle BitmapEffect="{StaticResource PopupDropShadow}" ... />
在我真正找到问题的原因之前,我不得不对应用程序进行了很多小时的分析。DropShadowBitmapEffect
类是非托管的,并防止对象被GC’d。此外,您会注意到DropShadowBitmapEffect
类被标记为Obsolete,并且有一个名为DropShadowEffect
的更新类修复了内存泄漏(并且是硬件加速的,因此大大提高了渲染性能(。这是实际的解决方案:
<DropShadowEffect x:Key="PopupDropShadow" ShadowDepth="1.5" />
...
<Rectangle Effect="{StaticResource PopupDropShadow}" ... />
问题
在Visual Studio 2010中的XAML中使用时,是否可能让不推荐使用/过时的类用法在编译时引发警告
我还没有对它进行XAML测试,但Gendarme有一条规则,可以检查是否使用了过时的代码。