wpf日历控件制作过程分析(1)---定义header
来源:互联网 发布:人工智能呼叫中心 编辑:程序博客网 时间:2024/05/18 00:33
希望通过分析能更好的理解wpf控件的开发
一.日历的header布局
包含两部分,两个按钮和一个Title
首先定义按钮的样式(随自己定),可以先定义几个状态为普通状态,鼠标经过状态,按下状态和禁用4个状态显示不同的样式.其中按钮上还有一个小三角.所以还要定义一个三角的Geometry
代码开始
1.画出Geometry(涉及知识点为Geometry的画法及迷你语法,如M Z等)
2.定义4个不同状态下的笔刷(可自由发挥)
3.定义按钮样式,按钮上再使用上面的笔刷
注意点
1.这里的TargetType是ButtonBase,因为有可能按钮是Button或RepeatButton都有可能,这里指向为ButtonBase是一种通用的做法
2.为何不直接定义还要为Button定义样式?,这里提供的样式为默认样式(下面我们会讲到)
3.ComponentResourceKey将资源定义在指定程序集中,在后端访问的方法如下
4.定义Title类,在静态构造函数中用OverrideMetadata方法重写样式(多数控件都需要这么做)
然后定义一个Title
注意上面黑字,这里使用了数据绑定的类型转换器,只要给这个控件指定数据源就可以了,其作用是把日期转换上面第二张截图的格式
5.整合header
注意点:
1.使用DataContext作为数据源
2.用RepeatButton当作按钮(可重复触发事件)
3.使用LayoutTransform翻转Geometry图形
4.自定义样式TitleStyle,默认为空
5.未见RepeatButton使用定义的ButtonBase样式?(可与第四点比较)
下次继续
一.日历的header布局
包含两部分,两个按钮和一个Title
首先定义按钮的样式(随自己定),可以先定义几个状态为普通状态,鼠标经过状态,按下状态和禁用4个状态显示不同的样式.其中按钮上还有一个小三角.所以还要定义一个三角的Geometry
代码开始
1.画出Geometry(涉及知识点为Geometry的画法及迷你语法,如M Z等)
<PathGeometry x:Key="geometry" Figures="M0,0 4.5,4 9,0 5.5,0 4.5,1 3.5,0z"/>
2.定义4个不同状态下的笔刷(可自由发挥)
Code
3.定义按钮样式,按钮上再使用上面的笔刷
Code
注意点
1.这里的TargetType是ButtonBase,因为有可能按钮是Button或RepeatButton都有可能,这里指向为ButtonBase是一种通用的做法
2.为何不直接定义还要为Button定义样式?,这里提供的样式为默认样式(下面我们会讲到)
3.ComponentResourceKey将资源定义在指定程序集中,在后端访问的方法如下
FindResource(new ComponentResourceKey(typeof(MonthCalendar), "PreviousButtonStyleKey")) as Style;
4.定义Title类,在静态构造函数中用OverrideMetadata方法重写样式(多数控件都需要这么做)
static MonthCalendarTitle()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MonthCalendarTitle), new FrameworkPropertyMetadata(typeof(MonthCalendarTitle)));
}
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MonthCalendarTitle), new FrameworkPropertyMetadata(typeof(MonthCalendarTitle)));
}
然后定义一个Title
Code
注意上面黑字,这里使用了数据绑定的类型转换器,只要给这个控件指定数据源就可以了,其作用是把日期转换上面第二张截图的格式
5.整合header
Code
注意点:
1.使用DataContext作为数据源
2.用RepeatButton当作按钮(可重复触发事件)
3.使用LayoutTransform翻转Geometry图形
4.自定义样式TitleStyle,默认为空
5.未见RepeatButton使用定义的ButtonBase样式?(可与第四点比较)
下次继续
- wpf日历控件制作过程分析(1)---定义header
- wpf日历控件制作过程分析(3)---定义DayHeaders
- wpf日历控件制作过程分析(全)[转]
- wpf日历控件制作过程分析(2)---自定义样式属性
- wpf日历控件制作过程分析(2)---自定义样式属性
- WPF 4 日历控件
- wpf制作分页控件
- 开源的一个WPF日历控件
- WPF 定义自己的控件
- Html关于日历控件的制作
- js制作日历1----------简单的日历
- WPF 分页控件 存储过程
- js - 日历控件(1)
- 安卓画日历控件1
- WPF下可编辑Header的Tab控件实现
- 终于找到了一个WPF中的日历控件
- 终于找到了一个WPF中的日历控件
- 潘鹏整理WPF(10)日历控件Calendar&&DatePicker
- wpf/silverlight文章推荐
- wpf/silverlight文章推荐阅读
- wpf验证方案讨论
- wpf日历控件制作过程分析(3)---定义DayHeaders
- wpf日历控件制作过程分析(2)---自定义样式属性
- wpf日历控件制作过程分析(1)---定义header
- wpf-装饰器
- wpf-触发器
- wpf-Style注意点
- wpf-Resource注意点
- wpf-DrawingBrush注意点
- wpf-容易误解的Image
- wpf轻量绘图DrawingVisual
- wpf学习笔记-数据绑定功能总结