日历控制-显示季度

本文关键字:季度 显示 控制 日历 | 更新日期: 2023-09-27 18:08:52

我正试图把一个日历控件(WPF)放在一起,它只会显示从一组日期的日期,这是季度的性质。

例如,我的日期集合(一个Datetime对象列表)将如下所示

31/Mar/2012
31/Dec/2012
30/Sep/2012
30/Jun/2012
30/Mar/2012

现在我可以使用日历控件并将其显示模式设置为"年"来显示年-月视图,但是我如何设置该控件来屏蔽上述集合中不可用的月份,而只显示集合中可用的月份呢?

请注意这个问题有两个部分:

  1. 当日历的显示模式设置为年时,我如何停电一个月?
  2. 如何屏蔽不属于该系列的月份?

你能帮帮我吗?

日历控制-显示季度

你可以尝试这样做:

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

查找最小和最大日期,然后执行以下操作:

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

更进一步,你可以设置范围,所以假设它不是那么直接,你需要多个范围(尽管从你的问题中看起来不像)那么你可以这样做:

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

更进一步,你甚至可以把一个特定的日期涂黑,像这样:

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

所以在你的情况下,可能最容易的是把某些日期涂黑。只需循环遍历列表并利用我给您的最后一个代码示例。