XAML 标记扩展

XAML 标记扩展通过支持从文本字符串以外的源设置元素属性,扩展 XAML 的功能和灵活性。

例如,通常如下设置 BoxViewColor 属性:

<BoxView Color="Blue" />

或者,你可以设置为十六进制 RGB 颜色值:

<BoxView Color="#FF0080" />

在任一情况下,设置为 Color 属性的文本字符串都由 ColorTypeConverter 类转换为 Color 值。

建议改为从资源字典中存储的值设置 Color 属性,从已创建的类的静态属性的值设置,或者从页面上另一个元素类型 Color 的属性设置,或者从单独的色调、饱和度和亮度值构造属性。

所有这些选项都可以使用 XAML 标记扩展来实现。 但不要让短语“标记扩展”吓倒你:XAML 标记扩展不是 XML 的扩展。 即使使用 XAML 标记扩展,XAML 也始终是合法的 XML。

标记扩展实际上只是表示元素属性的另一种方法。 XAML 标记扩展通常通过括在大括号中的属性设置来识别:

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

大括号中的任何属性设置始终是 XAML 标记扩展。 但是,如你所见,也可以在不使用大括号的情况下引用 XAML 标记扩展。

本文分为两个部分:

使用 XAML 标记扩展

使用 Xamarin.Forms 中定义的 XAML 标记扩展。

创建 XAML 标记扩展

写下自己的自定义 XAML 标记扩展。