Estensioni di Markup XAMLXAML Markup Extensions

Scaricare l'esempio scaricare l'esempioDownload Sample Download the sample

Le estensioni di markup XAML consentono ad ampliare la potenza e flessibilità di XAML, consentendo di attributi dell'elemento da impostare da origini diverse dalle stringhe di testo letterale.XAML markup extensions help extend the power and flexibility of XAML by allowing element attributes to be set from sources other than literal text strings.

Ad esempio, in genere si imposta la Color proprietà di BoxView simile al seguente:For example, normally you set the Color property of BoxView like this:

<BoxView Color="Blue" />

In alternativa, è possibile impostarlo su un valore di colore RGB esadecimale:Or, you can set it to a hexadecimal RGB color value:

<BoxView Color="#FF0080" />

In entrambi i casi, la stringa di testo impostato sul Color attributo viene convertito in un Color del valore di ColorTypeConverter classe.In either case, the text string set to the Color attribute is converted to a Color value by the ColorTypeConverter class.

È preferibile invece impostare il Color attributo da un valore archiviato in un dizionario risorse, o dal valore di una proprietà statica di una classe che è stata creata oppure da una proprietà di tipo Color di un altro elemento nella pagina o costruiti da separare i valori di tonalità, saturazione e luminosità.You might prefer instead to set the Color attribute from a value stored in a resource dictionary, or from the value of a static property of a class that you've created, or from a property of type Color of another element on the page, or constructed from separate hue, saturation, and luminosity values.

Tutte queste opzioni sono possibili utilizzando le estensioni di markup XAML.All these options are possible using XAML markup extensions. Ma non lasciare la frase "estensioni di markup": Le estensioni di markup XAML non sono estensioni per XML.But don't let the phrase "markup extensions" scare you: XAML markup extensions are not extensions to XML. Anche con le estensioni di markup XAML, XAML è sempre XML validi.Even with XAML markup extensions, XAML is always legal XML.

Un'estensione di markup è semplicemente un modo per esprimere un attributo di un elemento diverso.A markup extension is really just a different way to express an attribute of an element. Le estensioni di markup XAML sono in genere identificabili da un'impostazione dell'attributo che è racchiuso tra parentesi graffe:XAML markup extensions are usually identifiable by an attribute setting that is enclosed in curly braces:

<BoxView Color="{StaticResource themeColor}" />

Qualsiasi impostazione dell'attributo tra parentesi graffe sempre un'estensione di markup XAML.Any attribute setting in curly braces is always a XAML markup extension. Tuttavia, come si vedrà, le estensioni di markup XAML possono anche essere richiamate senza l'uso delle parentesi graffe.However, as you'll see, XAML markup extensions can also be referenced without the use of curly braces.

Questo articolo è diviso in due parti:This article is divided in two parts:

Utilizzo di estensioni di markup XAMLConsuming XAML Markup Extensions

Usare le estensioni di markup XAML definite in xamarin. Forms.Use the XAML markup extensions defined in Xamarin.Forms.

Creazione di estensioni di markup XAMLCreating XAML Markup Extensions

Scrittura delle estensioni di markup XAML personalizzate.Write your own custom XAML markup extensions.