1

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

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

31/Mar/2012

31/Dec/2012

30/Sep/2012

30/Jun/2012

30/Mar/2012

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

请注意,这个问题有 2 个部分:

  1. 当日历的显示模式设置为年份时,如何关闭一个月?
  2. 我如何关闭不属于收藏的月份?

你能帮忙吗?

4

2 回答 2

0

你可以尝试这样的事情:

public void BlackOutDates(startDate, endDate, periodInDays)
{
    while(startDate < endDate)
    {
        calender.BlackoutDates.Add(new CalendarDateRange(startDate, startDate.AddDays(periodInDays));
        startDate = startDate.AddDays(periodInDays+1);
    }
}
于 2013-04-11T12:21:18.983 回答
0

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

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

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

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

此外,您甚至可以像这样涂黑一个特定的日期:

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

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

于 2013-04-11T12:03:26.720 回答