XAML标记扩展

书名:WPF专业编程指南
作者:李应保
出版社:电子工业出版社
出版时间:2010-01
ISBN:9787121100116


一、XAML标记扩展

  • 有时候我们要在XAML里引用静态或动态对象实例,或在XAML中创建带有参数的类。
    这时,我们需要用到XAML扩展。XAML扩展常用来设定属性值。

  • 标记扩展本身是一系列类,其基类为MarkupExtension,这是一个抽象类。
    从这个类中派生出十二个类,即:
    ResourseKey、
    TypeExtension、
    StaticExten-sion、
    BindingBase、
    RelativeSourse、
    ColorConvertedBitmapExtension、
    Dyna-micResourceExtension、
    ArrayExtension、
    NullExtension、
    StaticResource-Extension、
    Template-BindingExtension和
    ThemeDictionaryExtension。
    其中ResourceKey、BindingBase等类又派生出其他的一些类。

二、分类

1、两大类

这些标记扩张可分为两大类:

  • WPF标记扩展。
    这类扩展包括:StaticResource、DynamicResource、Binding、RelativeSource和TemplateBinding。
  • XAML本身定义的标记扩展。
    这类扩展包括:x:Type、x:Static、x:null和x:Array。

2、语法

在语法上,XAML使用大括号{}来表示扩展。

  • 例如,下面这句XAML:
  <TextBlock Text="{Binding Source={StaticResource myDataSource}, Path
        =PersonName}"/>

这里有两处使用了XAML扩展,一个是Binding,另一个是StaticResource,这种用法又称为嵌套扩展,TextBlock元素的Text属性的值为{}中的结果。

  • 当XAML编译器看到大括号{}时,把大括号中的内容解释为XAML标记扩展。

  • 必要时,你也可以使用自己的扩展,其方法是从MarkupExtension中派生出你自己的标记扩展类,并覆盖基类中的ProvideValue方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容