Extensões de marcação do XAMLXAML Markup Extensions

Baixar Exemplo Baixar o exemploDownload Sample Download the sample

As extensões de marcação XAML ajudam a ampliar o poder e a flexibilidade do XAML, permitindo que os atributos de elemento sejam definidos de fontes diferentes de cadeias de caracteres de texto literal.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.

Por exemplo, normalmente você define a Color propriedade de BoxView como esta:For example, normally you set the Color property of BoxView like this:

<BoxView Color="Blue" />

Ou você pode defini-lo como um valor de cor RGB hexadecimal:Or, you can set it to a hexadecimal RGB color value:

<BoxView Color="#FF0080" />

Em ambos os casos, a cadeia de caracteres de texto definida como o Color atributo é convertida em um Color valor pela ColorTypeConverter classe.In either case, the text string set to the Color attribute is converted to a Color value by the ColorTypeConverter class.

Em vez disso, você pode preferir definir o Color atributo de um valor armazenado em um dicionário de recursos ou do valor de uma propriedade estática de uma classe que você criou, ou de uma propriedade do tipo Color de outro elemento na página, ou construídos a partir de valores separados de matiz, saturação e luminosidade.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.

Todas essas opções são possíveis usando extensões de marcação XAML.All these options are possible using XAML markup extensions. Mas não deixe a frase "extensões de marcação" assustam você: as extensões de marcação XAML não são extensões para XML.But don't let the phrase "markup extensions" scare you: XAML markup extensions are not extensions to XML. Mesmo com extensões de marcação XAML, o XAML é sempre XML válido.Even with XAML markup extensions, XAML is always legal XML.

Uma extensão de marcação é, na verdade, apenas uma maneira diferente de expressar um atributo de um elemento.A markup extension is really just a different way to express an attribute of an element. Extensões de marcação XAML geralmente são identificáveis por uma configuração de atributo que está entre chaves:XAML markup extensions are usually identifiable by an attribute setting that is enclosed in curly braces:

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

Qualquer configuração de atributo entre chaves é sempre uma extensão de marcação XAML.Any attribute setting in curly braces is always a XAML markup extension. No entanto, como você verá, as extensões de marcação XAML também podem ser referenciadas sem o uso de chaves.However, as you'll see, XAML markup extensions can also be referenced without the use of curly braces.

Este artigo é dividido em duas partes:This article is divided in two parts:

Consumo de extensões de marcação do XAMLConsuming XAML Markup Extensions

Use as extensões de marcação XAML definidas em Xamarin.Forms .Use the XAML markup extensions defined in Xamarin.Forms.

Criação de extensões de marcação do XAMLCreating XAML Markup Extensions

Escreva suas próprias extensões de marcação XAML personalizadas.Write your own custom XAML markup extensions.