Setter.Value不是ContentProperty有充分的理由吗?

时间:2009-05-06 08:25:52

标签: .net wpf xaml setter contentproperty

每次我写出一个其Value属性值无法内联描述的setter时,我都会诅咒API没有用Setter标记[ContentProperty("Value")]类的事实,允许这样:

<Setter Property="BitmapEffect">
  <Setter.Value>
    <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
  </Setter.Value>
</Setter>

......简化为:

<Setter Property="BitmapEffect">
  <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>

所以我的问题有点双重。首先,有没有一个很好的理由没有以这种方式配置API?其次,即使我不控制WPF API,有什么能阻止我以XamlReader的形式提供这些元数据吗?

2 个答案:

答案 0 :(得分:2)

确实很好......但是您可以轻松创建自己的继承自System.Windows.Setter的Setter类,将ContentProperty属性放在其上,并使用它而不是标准的Setter。

答案 1 :(得分:2)

问了这个问题十年零十八天后,新开源的WPF提交了一份PR来解决此问题:

https://github.com/dotnet/wpf/pull/745