表示する日付の設定や取得を行うには DisplayDate プロパティを使用します。
DisplayModeプロパティがMonthに設定されている場合には、設定した日付が含まれる月を表示します。
たとえば、DisplayDate プロパティに “2008/9/14” を設定した場合には、下記のように”2008/9/14″が含まれる月を表示します。つまり2008年9月のカレンダーが表示されます。
同様に、DisplayModeプロパティがYearの場合には2008年のカレンダーが表示され”9月”が選択状態になり、Decadeの場合には2000~2009年の10年カレンダーが表示され”2008年”が選択状態になります。
コードからDisplayDateを設定する場合にはDate型(C#はDateTime)の値を指定します。
下記は3つのカレンダーコントロールに、それぞれDisplayModeをMonth, Year, Decadeに設定し、”2008/9/14″を表示する例です。
XAMLの例
<Calendar Name="Calendar1" DisplayMode="Month" DisplayDate="9/14/2008" /> <Calendar Name="Calendar2" DisplayMode="Year" DisplayDate="9/14/2008" /> <Calendar Name="Calendar3" DisplayMode="Decade" DisplayDate="9/14/2008" />
VBの例
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded 'Calendarコントロールに2009/9/14を表示する Calendar1.DisplayDate = New Date(2008, 9, 14) Calendar2.DisplayDate = New Date(2008, 9, 14) Calendar3.DisplayDate = New Date(2008, 9, 14) End Sub
C#の例
private void Window_Loaded(object sender, RoutedEventArgs e) { // Calendarコントロールに2009/9/14を表示す calendar1.DisplayDate = new DateTime(2008, 9, 14); calendar2.DisplayDate = new DateTime(2008, 9, 14); calendar3.DisplayDate = new DateTime(2008, 9, 14); }
次にDisplayDateの値を取得する例を下記に示します。
Buttonコントロールがクリックされたときに、DisplayDate の値を ToShortDateStringメソッドで文字列に変換してメッセージボックスに表示します。
VBの例
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click MessageBox.Show(Calendar1.DisplayDate.ToShortDateString()) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click MessageBox.Show(Calendar2.DisplayDate.ToShortDateString()) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click MessageBox.Show(Calendar3.DisplayDate.ToShortDateString()) End Sub
C#の例
private void button1_Click(object sender, RoutedEventArgs e) { MessageBox.Show(calendar1.DisplayDate.ToShortDateString()); } private void button2_Click(object sender, RoutedEventArgs e) { MessageBox.Show(calendar2.DisplayDate.ToShortDateString()); } private void button3_Click(object sender, RoutedEventArgs e) { MessageBox.Show(calendar3.DisplayDate.ToShortDateString()); }