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

Dre*_*kes 11 .net wpf setter xaml contentproperty

每次我写出一个其Value内存属性值不可内联的setter时,我都会诅咒API没有标记Setter该类的事实[ContentProperty("Value")],这将允许:

<Setter Property="BitmapEffect">
  <Setter.Value>
    <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
  </Setter.Value>
</Setter>
Run Code Online (Sandbox Code Playgroud)

......简化为:

<Setter Property="BitmapEffect">
  <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>
Run Code Online (Sandbox Code Playgroud)

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

Tho*_*que 2

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