在XAML中每一个对象元素映射一个实例,而实例属性可以通过特性(Attributes)进行赋值。在实际项目开发中,对象元素的属性值可以是不同数据类型,根据需求不同,经常需要对数据类型进行转换,就需要使用XAML的类型转换器(Type Converters)。本篇将讲解XAML类型转换器的使用。
XAML类型转换器基础
在Windows 8或者Silverlight应用开发中,经常会用到类型转换器,例如对按钮的内容进行赋值,代码如下:
<Button Content=“按钮演示”/>
按钮的Content属性被赋值为字符串类型“按钮演示”。XAML语法解析器可以将字符串类型转换为对应的.Net类型,然后进行赋值操作。而如果在按钮控件中,添加内容文本颜色属性,
<Button Content=“按钮演示”Foreground=“Blue”/>
在.Net Framework中,Foreground属性的数据类型是Brush,通过SolidColorBrush对Color进行赋值,在以上代码中,XAML语法解析器需要使用类型转换器(Type Converters)将简单文本字符串“Blue”,转换为对应的“Brush”画刷类型,其颜色值为Red=0,Green=0,Blue=255,Aplha=255。 对应后台代码类型转换是:
Button button = new Button { Foreground = new SolidColorBrush(Color.FromArgb(0, 0, 255, 255)) };
这一转换过程是由.Net Framework内置类型转换器实现的,无需开发人员干涉。
转换过程主要是以下两个步骤:
1. XAML语法解析器会检查需要赋值的属性是否存在内置类型转换器,如果发现对应类型转换器,则将属性的属性值字符串转换为对应的.Net类型;