码迷,mamicode.com
首页 > 其他好文 > 详细

WPF- 关于自定义Calendar控件

时间:2014-05-08 05:29:59      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:style   class   code   tar   ext   get   

由于项目对更改日期 时间的需要,接触了一下Calendar控件。结果发现在这么强大的控件的背后,微软其实并没有为开发人员留有很强的扩展性。

(项目要求的Calendar控件能对一些特定的日期进行特殊处理,如高亮,以及类似于Outlook的Calendar一样,可以编辑会议,提醒什么的。)

Calendar里有一些控件如:CalendarItem,CalendarButton,CalendarDayButton。这些控件都被定义成了sealed。所以当我们要对Calendar控件做一些自定义的时候,我们就不能按照对待普通的其他控件的方式对待它(常规做法是我们创建一个控件,然后继承我们需要自定义的控件,为其添加一些依赖属性什么的。。)。 所以剩下的解决方案是

1.创建一个扩展性更强的Calendar控件。

2.使用Converter处理。

对于方案1,那肯定是吃力不讨好,Calendar控件本身相当的复杂,自己创建一个类似的控件费时费力,而且肯定不免有许多Bug。因此剩下的我们最好是使用方案2(Charles Petzold在MSDN杂志中有一篇文章讲的就是这个,请参考:Customizing the New WPF Calendar Controls)。

对于方案2. 我现在是在Converter中定义了一些属性(一个DateTime的集合,一个String的集合),然后在上面提及的Sealed的控件的Template中通过Converter做一些处理。

 

有关Calendar控件的扩展,Codeproject上有一些文章,参考:

rudigrobler  Creating an Outlook Calendar using WPF 系列

 的 Extending the WPF Calendar Control

 

 

 

 

WPF- 关于自定义Calendar控件,布布扣,bubuko.com

WPF- 关于自定义Calendar控件

标签:style   class   code   tar   ext   get   

原文地址:http://www.cnblogs.com/iwpf/p/3714617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!