Existe uma boa razão para que Setter.Value não é um ContentProperty?
-
06-07-2019 - |
Pergunta
Toda vez que eu escrever um setter cuja Value
valor da propriedade não é em linha descritível, eu curse o fato de que a API não marcar a classe Setter
com [ContentProperty("Value")]
, o que permitiria o seguinte:
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter.Value>
</Setter>
... para ser simplificada para isso:
<Setter Property="BitmapEffect">
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>
Então, minha pergunta é meio dupla. Em primeiro lugar, há uma boa razão para que a API não foi configurado dessa maneira? Em segundo lugar, há algo que parar minha tornando este metadados disponíveis para a XamlReader
de alguma forma, mesmo que eu não controlar a API WPF?
Solução
Bom ponto de fato ... Mas você pode facilmente criar sua própria classe Setter herdada de System.Windows.Setter, coloque o atributo ContentProperty sobre ele, e usá-lo em vez do Setter padrão.
Outras dicas
anos dez e dezoito dias após fazer esta pergunta, o WPF recém-open-source tem um PR submetido corrigidos neste: