XML属性的值始终是一个字符串,但是对象的属性可以是任何.NET类型。因此XAML语法解析器需要执行一个转换。这个转换主要通过type converters完成,来自完整版.NET 框架的基础架构的一部分。

  本质上,一个类型转换器在程序中主要有一个角色------它提供一个有用的方法,把指定的.NET数据类型转换为其他类型或者将其他类型转换为.NET的指定类型XAML解析器按以下两个步骤找到类型转换器:

1.       它检查属性的声明,查找TypeConverter属性(如果存在,TypeConverter属性表示哪些类可以执行转换)。比如,当你Foreground属性时,.NET检查Foreground属性的声明。

2.       如果在属性声明中没有TypeConverter属性,XAML转换器会检查对应的数据类型的类的声明。比如,Foreground属性用的是Brush对象。Brush(和它的继承类)使用了BrushConverter,因为Brush类用了TypeConverter(typeof(BrushConverter))属性。

如果在属性声明或类的声明上没有相关的类型转换器,XAML解析器将会产生错误。

相关文章:

  • 2022-12-23
  • 2021-06-12
  • 2021-08-17
  • 2021-09-06
  • 2022-01-19
  • 2021-05-11
  • 2021-11-22
  • 2021-11-04
猜你喜欢
  • 2022-01-23
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2021-08-01
  • 2021-09-13
相关资源
相似解决方案