Stili e modelli inline

Windows Presentation Foundation (WPF) fornisce Style oggetti e oggetti modello (FrameworkTemplate sottoclassi) come modo per definire l'aspetto visivo di un elemento nelle risorse, in modo che possano essere usati più volte. Per questo motivo, gli attributi in XAML che accettano i tipi Style e FrameworkTemplate quasi sempre fanno riferimento alle risorse a stili e modelli esistenti anziché definirne di nuovi inline.

Limitazioni di stili e modelli inline

In Extensible Application Markup Language (XAML), le proprietà di stile e modello possono essere impostate tecnicamente in uno dei due modi. È possibile usare la sintassi degli attributi per fare riferimento a uno stile definito all'interno di una risorsa, ad esempio <l'oggettoStyle="{StaticResourcemyResourceKey}" .../>. In alternativa, è possibile usare la sintassi degli elementi proprietà per definire uno stile inline, ad esempio:

<object>

<object.Style>

< Style .../>

</object.Style>

</object>

L'utilizzo degli attributi è molto più comune. Uno stile definito inline e non definito nelle risorse è necessariamente limitato all'elemento contenitore e non può essere riutilizzato con facilità perché non dispone di una chiave di risorsa. In generale, uno stile definito dalle risorse è più versatile e utile ed è più coerente con il principio generale del modello di programmazione Windows Presentation Foundation (WPF) di separare la logica del programma nel codice dalla progettazione nel markup.

In genere non esiste alcun motivo per impostare uno stile o un modello inline, anche se si intende usare solo tale stile o modello in tale posizione. La maggior parte degli elementi che possono accettare uno stile o un modello supporta anche una proprietà di contenuto e un con modalità tenda l. Se si usa solo l'albero logico creato tramite stili o modelli una sola volta, sarebbe ancora più semplice riempire tale proprietà di contenuto con gli elementi figlio equivalenti nel markup diretto. In questo modo i meccanismi di stile e modello verranno ignorati completamente.

Altre sintassi abilitate dalle estensioni di markup che restituiscono un oggetto sono anche possibili per stili e modelli. Due estensioni di questo tipo con possibili scenari includono TemplateBinding e Binding.

Vedi anche