我在wpf中使用了以下xaml:
<Style TargetType="{x:Type Border}">
<Setter Property="BitmapEffect">
<Setter.Value>
<BitmapEffectGroup>
<DropShadowBitmapEffect ShadowDepth="1"/>
</BitmapEffectGroup>
</Setter.Value>
</Setter>
</Style>
当我发现DropShadowBitmapEffect现在已被弃用而支持DropShadowEffect:
<Style TargetType="{x:Type Border}">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect></DropShadowEffect>
</Setter.Value>
</Setter>
</Style>
但我很幸运地知道这一点!! 我怎么知道用xaml编写的某个控件现在已被弃用?
答案 0 :(得分:2)
一个好的静态分析工具应该可以告诉你何时使用已被弃用的东西。在某些情况下,C#编译器会告诉你。实际上,在这种情况下,R#和C#编译器都会认识到您使用标记为Obsolete
的属性,如果您使用C#代码分配它。
不幸的是,目前,如果您在XAML中使用过时的属性或元素,R#静态分析过程或XAML编译器似乎都不会接受。但是,即使编辑XAML,R#中的intellisense功能也会显示不推荐使用的删除项目。
我肯定会查看fxcop以查看它是否适用于XAML并查看是否有规则来检查过时成员的使用情况。
修改强>:
R# (or Resharper)是一个非常有用的Visual Studio插件,它提供了许多很酷的功能,包括一些编辑器内的静态分析。