1

本質的に四半期ごとの日付のコレクションからの日付のみを表示するカレンダー コントロール (WPF) をまとめようとしています。

たとえば、日付のコレクション(Datetimeオブジェクトのリスト)は次のようになります

31/Mar/2012

31/Dec/2012

30/Sep/2012

30/Jun/2012

30/Mar/2012

これで、カレンダー コントロールを使用して、その表示モードを年に設定して年月ビューを表示できますが、上記のコレクションで使用できない月を黒く塗りつぶし、使用可能な月のみを表示するようにコントロールを設定するにはどうすればよいですか?コレクション?

質問には 2 つの部分があることに注意してください。

  1. カレンダーの表示モードが年に設定されている場合、月を黒く塗りつぶすにはどうすればよいですか?
  2. コレクションに含まれていない月を黒く塗りつぶすにはどうすればよいですか?

助けていただけますか?

4

2 に答える 2

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 に答える
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 に答える