2009-07-06 26 views

risposta

19

Niente. Poiché il tipo di proprietà è Type, il parser XAML è in grado di provare e convertire qualsiasi cosa fornita a Type. In altri scenari, il tipo di proprietà potrebbe essere meno specifico (ad esempio Object), ed è qui che è necessaria l'estensione di markup, altrimenti il ​​parser XAML interpreterà semplicemente il valore come String.

15

Scusate per il frugare un filo così vecchio, ma sento che ne vale la pena. Recentemente ho riscontrato una situazione che mostra che x:Typeè diverso da TypeName-as-String.

Dalla mia esperienza -

x:Type considera il nome sicuro o la versione del gruppo, ma non TypeName-as-String.

ho spiegato circa il mio scenario e altri dettagli nel mio blog qui -

Importance of specifying AncestorType with x:Type in RelativeSourceBinding

Oltre a questo, c'è anche differenza nel modo in WPF deduce il tipo. Per x:TypeTypeExtension viene utilizzato, mentre per TypeName-as-StringFrameworkElementFactory viene utilizzato.

Come per MSDN - x:Type Markup Extension

Proprietà del tipo che supportano typename-as-String

WPF supporta le tecniche che consentono di specificare il valore di alcuni proprietà di tipo tipo senza richiedere un x:Type markup estensione utilizzo. Invece, è possibile specificare il valore come una stringa che denomina il tipo . Esempi di questo sono ControlTemplate.TargetType e Style.TargetType. Il supporto per questo comportamento non viene fornito tramite convertitori di tipi o estensioni di markup. Invece, si tratta di un comportamento di differimento implementato tramite FrameworkElementFactory.

Problemi correlati