900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > WPF- 关于自定义Calendar控件

WPF- 关于自定义Calendar控件

时间:2023-06-15 02:25:32

相关推荐

WPF- 关于自定义Calendar控件

由于项目对更改日期 时间的需要,接触了一下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 OutlookCalendarusingWPF 系列

David Veeneman的Extending theWPFCalendarControl

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。