WPF揭密之WPF 样式、模版、皮肤、主题
2015-03-18 16:23
78 查看
样式(Style):对属性分组,否则这些属性就要单独设置。样式存在的目的是在多个元素中共享该组的值。一个Style可以通过BasedOn属性从另一个属性继承。
触发器:
属性触发器:当依赖属性的值发生改变时调用。
数据触发器:当普通.Net属性值改变时调用。
事件触发器:当路由事件被触发时调用。
FrameworkElement、Style、DataTemplate、ControlTemplate都有一个Triggers集合,但是Style和模版类(DataTemplate和ControlTemplate)支持3种类型,FrameworkElement仅支持事件触发器。
模板:
控件模板:ControlTemplate继承自FrameworkTemplate抽象类
TemplateBingding专门为模板设置的绑定,它的“数据源”总是目标元素,而“路径”则是目标元素的任意一个依赖属性。TemplateBingding仅在模板的可视树内部起作用,但是对于冻结的属性不起作用。TemplateBingding在模板外部或VisualTree属性外部不起作用,因此不能在模板的触发器中使用TemplateBingding。
ContentPresenter和ContentControl:
在控件模板中应该使用更轻量级的ContentPresenter元素,而不是ContentControl,ContentPresenter显示的内容与ContentControl一样,但是它是专门为控件模板设计的。ContentPresenter是一个原始的构建快,然而ContentControl是一个带有控件模板的成熟控件(里面包含的就是ContentPresenter)
触发器:
属性触发器:当依赖属性的值发生改变时调用。
数据触发器:当普通.Net属性值改变时调用。
事件触发器:当路由事件被触发时调用。
FrameworkElement、Style、DataTemplate、ControlTemplate都有一个Triggers集合,但是Style和模版类(DataTemplate和ControlTemplate)支持3种类型,FrameworkElement仅支持事件触发器。
模板:
控件模板:ControlTemplate继承自FrameworkTemplate抽象类
TemplateBingding专门为模板设置的绑定,它的“数据源”总是目标元素,而“路径”则是目标元素的任意一个依赖属性。TemplateBingding仅在模板的可视树内部起作用,但是对于冻结的属性不起作用。TemplateBingding在模板外部或VisualTree属性外部不起作用,因此不能在模板的触发器中使用TemplateBingding。
ContentPresenter和ContentControl:
在控件模板中应该使用更轻量级的ContentPresenter元素,而不是ContentControl,ContentPresenter显示的内容与ContentControl一样,但是它是专门为控件模板设计的。ContentPresenter是一个原始的构建快,然而ContentControl是一个带有控件模板的成熟控件(里面包含的就是ContentPresenter)
相关文章推荐
- 在ASP.NET 2.0中使用样式、主题和皮肤
- WordPress模版:个人CMS主题wesky(5款样式自由切换)
- WPF主题样式和应用程序样式
- WPF通用对话框使用系统主题样式
- 在ASP.NET2.0中使用样式、主题和皮肤
- ASP.NET 2.0新特性-使用样式、主题和皮肤
- 在ASP.NET 2.0中使用样式、主题和皮肤
- 在ASP.NET 2.0中使用样式、主题和皮肤
- 【转载】动态加载wpf控件主题样式资源
- 【WindowsPhone】--(二)主题、样式与模版
- WPF Mahapps.Metro 设置主题样式
- WPF,Silverlight与XAML读书笔记第四十六 - 外观效果之三皮肤与主题
- 在ASP.NET 2.0中使用样式、主题和皮肤(转载)
- WP7入门 -- (二)主题、样式与模版
- 信息系统开发平台OpenExpressApp - 支持WPF主题样式
- 在ASP.NET 2.0中使用样式、主题和皮肤
- 在ASP.NET 2.0中使用样式、主题和皮肤
- ASP.NET 2.0中使用样式、主题和皮肤
- [导入]在ASP.NET 2.0中使用样式、主题和皮肤
- WPF样式\控件模版\触发器