每当我写出一个其 Value 属性值无法内联描述的setter时,我就会诅咒API没有用<标记 Setter 类的事实代码> [ContentProperty(&quot; Value&quot;)] ,允许这样:

<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?其次,有什么能阻止我以某种方式将这些元数据提供给 XamlReader ,即使我不控制WPF API吗?

有帮助吗?

解决方案

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

其他提示

在提出这个问题后的十年零十八天,新开源的WPF提交了一份PR修复了这个问题:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top