Setter.Value不是ContentProperty有充分的理由吗?
-
06-07-2019 - |
题
每当我写出一个其 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修复了这个问题:
不隶属于 StackOverflow