XAML标记扩展

本文详细介绍了XAML中的标记扩展,包括其在实际项目中的应用,如资源引用和类型转换。重点讨论了WPF特有的标记扩展,如StaticResource、DynamicResource、Binding以及RelativeSource和TemplateBinding等,阐述了它们的工作原理和使用场景。此外,还提及了ColorConvertedBitmap和其他资源查找相关的标记扩展。了解更多标记扩展,请参阅官方文档。
摘要由CSDN通过智能技术生成

一:标记扩展(Markup Extensions)

  1. 实际项目中为XAML控件属性赋值经常遇到:
    设计时属性之处于未知状态
    运行时才能获取到

  2. 轻松实现XAML页面属性赋值,资源引用,类型转换等操作
    二:特点于WPF的标记扩展
    WPF最常用的标记扩展是:支持资源引用的标记扩展(StaticResource 和 DynamicResource),和支持数据绑定的标记扩展 (Binding)。

  3. StaticResource 通过替换已定义资源的值来为属性提供值。 StaticResource 计算最 终在 XAML 加载时进行,并且在运行时没有访问对象图的权限。

  4. DynamicResource 通过将值推迟为对资源的运行时引用来为属性提供值。为了 获取此访问权限,WPF 属性系统中的依赖项属性和计算出的表达式支持 DynamicResource 概念。 因此,只能对依赖项属性目标使用 DynamicResource。

  5. Binding 使用在运行时应用于父对象的数据上下文来为属性提供数据绑定值。(相对复杂) 在这里插入图片描述

  6. RelativeSource 提供的源信息 Binding ,该信息可在运行时对象树中导航几个可能 的关系。对于在多用途模板中创建的绑定,或在未充分了解周围的对象树的情况下 以代码创建的绑定,此标记扩展为其提供专用源。 在这里插入图片描述

(1) 使用self模式 :
目标对象将作为源对象绑定到自身
可以实现同一对象元素不同属性之间的绑定操作
(2) 使用TemplatedParent模式
仅在ControlTemplate(控件模板) 或者DataTemplate (数据模板)下有效
不同的模板,将返回不同类型的绑定结
5. TemplateBinding 使控件模板能够使用模板化属性的值,这些属性来自于将使用该模 板的类的对象模型定义属性。
6. ColorConvertedBitmap 支持相对高级的映像方案。
7. ComponentResourceKey 和 ThemeDictionary 支持资源查找的各个方面,特别是支 持查找与自定义控件一起打包的资源和主题。
没讲到的标记扩展可以自己查看网址:https://docs.microsoft.com/zhcn/dotnet/desktop/wpf/advanced/wpf-xaml-extensions? view=netframeworkdesktop-4.8
三:常用标记扩展

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值