日历控制 - 显示宿舍

时间:2013-04-11 11:57:49

标签: c# wpf .net-3.5

我正在尝试组合一个日历控件(WPF),它只显示日期集合中的日期,这些日期属于季度性质。

例如,我的日期集合(日期时间对象列表)将如下

31/Mar/2012

31/Dec/2012

30/Sep/2012

30/Jun/2012

30/Mar/2012

现在我可以使用日历控件并将其显示模式设置为年仅显示年 - 月视图,但是如何设置控件以停止上述集合中不可用的月份并仅显示月份该系列中有哪些?

请注意,问题分为两部分:

  1. 当日历的显示模式设置为年份时,如何停电一个月?
  2. 如何停止不属于该系列的月份?
  3. 你能帮忙吗?

2 个答案:

答案 0 :(得分:0)

只需找到最短和最长日期然后执行此操作:

calendarControl.BlackoutDates.Add(new CalendarDateRange(minDate, maxDate));

进一步你可以做范围,所以让我们说它不是那么直截了当你需要多个范围(虽然它看起来不像你的问题)然后你可以这样做:

calendarControl.BlackoutDates.Add(new CalendarDateRange(rangeStart, rangeEnd));

你甚至可以将这样的具体日期变黑:

calendarControl.BlackoutDates.Add(new CalendarDateRange(blackoutDate));

因此,在您的情况下,最简单的方法是将某些日期删除。只需遍历列表并利用我给你的最后一个代码示例。

答案 1 :(得分:0)

您可以尝试这样的事情:

public void BlackOutDates(startDate, endDate, periodInDays)
{
    while(startDate < endDate)
    {
        calender.BlackoutDates.Add(new CalendarDateRange(startDate, startDate.AddDays(periodInDays));
        startDate = startDate.AddDays(periodInDays+1);
    }
}