在WPF中,创建类似于Outlook 2007的日历视图的最佳方法是什么?

时间:2009-04-28 13:24:17

标签: c# .net wpf wpf-controls

我正在编写一个WPF桌面应用程序,并且视图需要看起来像日历。我只需要显示四周(固定)。每周都会有一个项目列表(可能用ListView表示)。我在两种方法之间进行辩论:

  1. 使用布局控件 - 一个网格控件,其中每个“单元格”包含一个ListView

  2. 使用ListView + GridView,然后自定义样式以更像日历

  3. 在我看来,布局控件更容易实现,但有些东西感觉很脏。我基本上是硬编码28个单元格,每个单元格包含一个ListView。但同样,这很简单。

    我认为ListView / GridView会更优雅,但我仍然需要为每个单元格创建一个ListView,然后我必须弄清楚如何设置控件的样式,使它看起来更像一个日历而不像桌子。

    思想?

3 个答案:

答案 0 :(得分:2)

您可以使用带有UniformGrid的ListBox。这将负责构建基本布局。当显示的日期不在当月时,当前月份稍微触发以实现样式的更改。

然后,每天都可以将ListView或ListBox作为其模板的一部分,用于显示任务/会议/其他任何内容。

整个事物将绑定到代表“天”及其内容的对象集合。

对于ItemsControl的基础,ListBox通常是一个不错的选择。

您还应该看看如何在WPF中构建Calendar控件,它可能会帮助您提供一些想法。

答案 1 :(得分:1)

或许,以下示例可以帮助您: http://www.codeproject.com/KB/WPF/WPFOutlookCalendar.aspx

答案 2 :(得分:1)

查看它可能在WPF中使用的Silverlight Toolkit来源