Stili e modelli inlineInline Styles and Templates

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) fornisce oggetti di Style e oggetti modello (FrameworkTemplate sottoclassi) come metodo per definire l'aspetto visivo di un elemento nelle risorse, in modo che possano essere utilizzate più volte.provides Style objects and template objects (FrameworkTemplate subclasses) as a way to define the visual appearance of an element in resources, so that they can be used multiple times. Per questo motivo, gli attributi in XAMLXAML che accettano i tipi Style e FrameworkTemplate quasi sempre fanno riferimento a risorse e modelli esistenti anziché definire nuovi modelli inline.For this reason, attributes in XAMLXAML that take the types Style and FrameworkTemplate almost always make resource references to existing styles and templates rather than define new ones inline.

Limitazioni degli stili e dei modelli in lineaLimitations of Inline Styles and Templates

In Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML), le proprietà dello stile e del modello possono tecnicamente essere impostate in uno dei due modi.In Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML), style and template properties can technically be set in one of two ways. È possibile utilizzare la sintassi degli attributi per fare riferimento a uno stile definito all'interno di una risorsa, ad esempio <oggettoStyle="{StaticResource``}" .../>ResourceKey .You can use attribute syntax to reference a style that was defined within a resource, for example <objectStyle="{StaticResourcemyResourceKey}" .../>. In alternativa, è possibile usare la sintassi dell'elemento Property per definire uno stile inline, ad esempio:Or you can use property element syntax to define a style inline, for instance:

oggetto < >< object >

oggetto < .Style>< object .Style>

< Style``.../>< Style .../>

oggetto </ .Style></ object .Style>

oggetto </ ></ object >

L'utilizzo dell'attributo è molto più comune.The attribute usage is much more common. 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.A style that is defined inline and not defined in resources is necessarily scoped to the containing element only, and cannot be re-used as easily because it has no resource key. 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)Windows Presentation Foundation (WPF) della separazione della logica di programma nel codice dalla progettazione nel markup.In general a resource-defined style is more versatile and useful, and is more in keeping with the general Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) programming model principle of separating program logic in code from design in markup.

In genere non esiste alcun motivo per impostare uno stile o un modello inline, anche se si intende utilizzare solo lo stile o il modello in tale posizione.Usually there is no reason to set a style or template inline, even if you only intend to use that style or template in that location. La maggior parte degli elementi che possono assumere uno stile o un modello supporta anche una proprietà di contenuto e un modello di contenuto.Most elements that can take a style or template also support a content property and a content model. Se si usa qualsiasi albero logico creato con lo stile o il modello una sola volta, sarebbe ancora più semplice riempire la proprietà di contenuto con gli elementi figlio equivalenti nel markup diretto.If you are only using whatever logical tree you create through styling or templating once, it would be even easier to just fill that content property with the equivalent child elements in direct markup. In questo modo, il meccanismo dello stile e del modello verrà ignorato.This would bypass the style and template mechanisms altogether.

Sono inoltre possibili altre sintassi abilitate dalle estensioni di markup che restituiscono un oggetto per gli stili e i modelli.Other syntaxes enabled by markup extensions that return an object are also possible for styles and templates. Due estensioni di questo tipo con scenari possibili includono TemplateBinding e Binding.Two such extensions that have possible scenarios include TemplateBinding and Binding.

Vedere ancheSee also