Setter.ValueがContentPropertyではないという正当な理由はありますか?
-
06-07-2019 - |
質問
Value
プロパティの値がインラインで記述できないセッターを作成するたびに、 Setter
クラスを<でマークしないという事実を呪いますcode> [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がこのように構成されていないという正当な理由がありますか?第二に、WPF APIを制御していなくても、このメタデータを XamlReader
で使用できるようにすることを妨げるものはありますか?
解決
確かに良い点...しかし、System.Windows.Setterから継承した独自のSetterクラスを簡単に作成し、それにContentProperty属性を設定して、標準のSetterの代わりに使用することができます。
他のヒント
この質問をしてから10年と18日後に、新しくオープンソース化されたWPFには、これを修正するPRが提出されています。
所属していません StackOverflow