C'è una buona ragione per cui Setter.Value non è ContentProperty?
-
06-07-2019 - |
Domanda
Ogni volta che scrivo un setter il cui valore della proprietà Value
non è descrivibile in linea, maledico il fatto che l'API non contrassegni la classe Setter
con < code> [ContentProperty (" Value ")] , che consentirebbe questo:
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter.Value>
</Setter>
... da semplificare a questo:
<Setter Property="BitmapEffect">
<OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>
Quindi la mia domanda è in qualche modo duplice. Innanzitutto, c'è una buona ragione per cui l'API non è stata configurata in questo modo? In secondo luogo, c'è qualcosa che mi impedisce di rendere questi metadati disponibili per XamlReader
, anche se non controllo l'API WPF?
Soluzione
Un buon punto in effetti ... Ma potresti facilmente creare la tua classe Setter ereditata da System.Windows.Setter, inserirvi l'attributo ContentProperty e usarlo al posto del Setter standard.
Altri suggerimenti
Dieci anni e diciotto giorni dopo aver posto questa domanda, il WPF di recente provenienza ha presentato una PR che lo risolve: