WPF4 Unleashed - come funziona la conversione degli elementi figlio?

0

Nel capitolo 2 del libro WPF4 Unleashed l'autore mostra un esempio di come i tipi di processi XAML convertono. Dichiara che

<SolidColorBrush>White</SolidColorBrush>

è equivalente a

<SolidColorBrush Color="White"/>

, perché una stringa può essere convertita in un oggetto SolidColorBrush .

Ma come è abbastanza? Non ha senso per me. In che modo XAML sa a quale proprietà deve essere assegnato il valore White ?

    
posta Kapol 05.06.2014 - 21:15
fonte

1 risposta

1

Questa è una caratteristica fondamentale di XAML. La panoramica XAML di Microsoft copre questo piuttosto esplicitamente.

A small number of XAML elements can directly process text as their content. To enable this, one of the following cases must be true:

  • The class must declare a content property, and that content property must be of a type assignable to a string (the type could be Object). For instance, any ContentControl uses Content as its content property and it is type Object, and this supports the following usage on a practical ContentControl such as a Button: Hello.

  • The type must declare a type converter, in which case the text content is used as initialization text for that type converter. For example, Blue. This case is less common in practice.

  • The type must be a known XAML language primitive.

Cioè, la classe SolidColorBrush è in grado di indirizzare il contenuto del testo alla sua proprietà Color , dichiarando "Colore" come proprietà del contenuto.

Molto probabilmente la classe Color separata ha un cast implicito da string , consentendo di inviare una stringa valida per qualsiasi scopo che specifica un Color .

    
risposta data 05.06.2014 - 21:42
fonte

Leggi altre domande sui tag