WPF学习笔记--控件模板
来源:互联网 发布:mt4编程论坛 编辑:程序博客网 时间:2024/06/11 15:08
WPF只是定义了控件的作用,并没有定义控件的外观。我们可以使用控件模板来定义控件的外观。
Template是控件的一个属性,因此可以定义到样式中。
<Style x:Key="CalcButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Ellipse Fill="LightGreen" />
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Control.Margin" Value="10"/>
</Style>
这里定义的控件模板有其先天不足:没有显示按钮上的内容。需要添加ContentPresenter。
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Fill="LightGreen"/>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
模板绑定
虽然样式很好的定义了一类控件,但是其定义的属性值都是在定义样式时固定死了的。如何能使控件指定自己独立的属性值呢?
我们需要使用模板绑定。
<Ellipse Fill="LightGreen" Stroke="{TemplateBinding Control.BorderBrush}"/>
这样就是把模板中的某一属性值绑定到了控件的某一属性上。
触发器
使用触发器,当触发条件满足时,触发器中的值和数据才会有效,如:
<Style x:Key="CalcButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse x:Name="theEllipse" Fill="LightGreen"
Stroke="{TemplateBinding Control.BorderBrush}"/>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="Button.IsPressed" Value="True" >
<Setter TargetName="theEllipse"
Property="Fill" Value="Yellow"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
- WPF学习笔记--控件模板
- WPF默认控件模板
- WPF:控件模板
- WPF and Silverlight 学习笔记(十):WPF控件模型
- WPF中的ControlTemplate(控件模板)
- WPF中的ControlTemplate(控件模板)
- WPF中的控件模板(ControlTemplate)
- WPF中的控件模板(ControlTemplate)
- WPF中的ControlTemplate(控件模板)
- WPF 模板中的控件修改
- WPF中的ControlTemplate(控件模板)
- WPF中的ControlTemplate(控件模板)
- WPF中的ControlTemplate(控件模板)
- WPF:从WPF Diagram Designer Part 1学习控件模板、移动、改变大小和旋转
- WPF模板的学习
- WPF笔记-控件
- WPF ListBox控件学习
- WPF学习之控件
- 《当程序员的那些狗日日子》(四十九)倾注心血而成的系统
- google oauth 1.0 standalone app example
- 机器视觉领域的牛人们的博客
- 10亿数中找出最大1000个数的算法C实现(简化版)
- Oracle Analytics Portfolio
- WPF学习笔记--控件模板
- 基于ARM处理器的linux中断详解(结合linux2.6.32.2-GQ2440分析)
- Android[中级教程]第八章 Json数据的处理
- AIX 第六天偶记
- 树的镜像反转
- hdu 1166敌兵布阵
- 没路由器的情况下--利用无线网卡组局域网--亲身体会
- JDBC-数据库连接类ConnDB
- 创业杂谈