Y a-t-il une bonne raison pour que Setter.Value ne soit pas un ContentProperty?
-
06-07-2019 - |
Question
Chaque fois que j'écris un séparateur dont la propriété Valeur
n'est pas descriptible en ligne, je maudis le fait que l'API ne marque pas la classe Setter
avec < code> [ContentProperty ("Valeur")] , ce qui permettrait ceci:
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter.Value>
</Setter>
... à simplifier:
<Setter Property="BitmapEffect">
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>
Donc, ma question est un peu double. Premièrement, y a-t-il une bonne raison pour que l'API n'ait pas été configuré de cette manière? Deuxièmement, y a-t-il quelque chose qui m'empêche de rendre ces métadonnées disponibles pour XamlReader
, même si je ne contrôle pas l'API WPF?
La solution
C'est un bon point en effet ... Mais vous pouvez facilement créer votre propre classe Setter héritée de System.Windows.Setter, placez l'attribut ContentProperty dessus et utilisez-la à la place du Setter standard.
Autres conseils
Dix ans et dix-huit jours après avoir posé cette question, le nouveau fichier WPF à source ouverte a été corrigé: