11

每次我写出一个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 是否有充分的理由?XamlReader其次,即使我不控制 WPF API ,是否有什么阻止我以某种方式提供此元数据?

4

2 回答 2

3

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

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

于 2019-05-24T03:14:32.337 回答
2

确实是好点...但是您可以轻松地创建自己的从 System.Windows.Setter 继承的 Setter 类,将 ContentProperty 属性放在它上面,然后使用它来代替标准的 Setter。

于 2009-05-06T17:09:41.717 回答