代码改变世界

wpf日历控件制作过程分析(2)---自定义样式属性

2008-06-18 15:44  Clingingboy  阅读(2031)  评论(1编辑  收藏  举报
接上篇wpf日历控件制作过程分析(1)---定义header

在header中,我们看到了定义一个自定义样式TitleStyle

1.自定义样式

看后台代码定义

Code

应该说,是比较简单的,默认样式为null,如果指定了样式的话,则会覆盖默认的样式

2.不重叠选择样式

为日历的前进和后退按钮定义两个样式
Code

再来这个RefreshNextButtonStyle方法

Code

注意点:
1.GetTemplateChild可以获取到xaml中声明了key值的元素,c_NextButtonName变量就是xaml定义的key,此key应该公开给控件的使用者,可调整样式
2.用TemplatePart公开模块样式,如两个按钮的key值
    [TemplatePart(Name = "PART_PreviousButton", Type = typeof(ButtonBase))]
    [TemplatePart(Name 
= "PART_NextButton", Type = typeof(ButtonBase))]
3._defaultNextButtonStyle还是从xaml去找,其目的是为了自定义样式不会与默认样式发生冲突.可以title样式比较
4.构建可视化模板需要在OnApplyTemplate方法中使用,如上面的RefreshNextButtonStyle方法必须在OnApplyTemplate方法中调用