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?

Foi útil?

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:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top