カレンダーや日付ピッカー:WPFコントロールの2つの日付が含まれています。両方のコントロールは、ユーザーが日付を選択できるように設計されています。
カレンダーコントロールは、Windowsオペレーティングシステムを参照してください(カレンダーを参照して、システムの日付を設定する例えば、)カレンダーに似た日付が表示されます。コントロール・ディスプレイ一ヶ月、(矢印ボタンをクリックして)別の月へ1月からのジャンプを許可、または特定の月にジャンプ(最初の月クリックすることにより、年間タイトルの数ヶ月を見て、 )月をクリックします。
日付ピッカーコントロールは、より少ないスペースを必要とします。これは、テキストボックス、日付または日付形式の文字列の長さの短い日付形式を保存するには、テキストボックスの単純なモデルです。日付ピッカーコントロールがクリックされたときに、その矢印のドロップダウンを提供し、完全なカレンダーの試み、フェアチャイルドCalendarコントロールと表示しようとする試みがポップアップ表示されます。表示するには、この試みは、ポップアップ、他のコンテンツの上に、ドロップダウンコンボボックスのように。
次の図に示す2つの表示モードは、Calendarコントロールでサポートされている、と日付ピッカーは、2つの日付の形式をサポートしています。
プロパティを提供カレンダーや日付ピッカーコントロールは、日付時にディスプレイを選択する(これらの日付を提供するために、連続した範囲で)何日とを決定することができます。次の表は、使用可能な属性を示しています。
表日付ピッカークラス属性とカレンダー
日付コントロールは、いくつかの異なるイベントを提供します。最も有用なイベントは、イベントの日付ピッカーコントロール、または複数の日付を選択するためのサポートを追加するCalendarコントロールと同様のSelectedDatesChangedイベントを、SelectedDateChangedされます。あなたは、このような週末の日付などの特定の日付を選択するためにこれらのイベントに応答することを拒否する場合があります。
private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { foreach (DateTime selectedDate in e.AddedItems) { if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) || (selectedDate.DayOfWeek == DayOfWeek.Sunday)) { lblError.Text = "Weekends are not allowed"; ((Calendar)sender).SelectedDates.Remove(selectedDate); } } }
可使用支持单个或多个日期选择的Calendar事件加以测试。如果支持多个选择,那么尝试在整个星期的日期上拖动鼠标。除不允许的周末日期外,其他所有日期将保持突出显示,而周末日期将被自动取消选择。
Calendar控件还添加了DisplayDateChanged事件(当用户浏览到新的月份时触发该事件)。DatePicker控件添加了CalendarOpened和CalendarClosed事件(当下拉日历显示和关闭时触发这两个事件),以及DateValidationError事件(当用户在文本输入部分输入不能被解释为合法时间的值时触发该事件)。通常,但用户打开日历试图时会丢弃非法值,但可以选择填充一些文本以通知发生了问题:
private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e) { lblError.Text = "'" + e.Text + "' is not a valid value because " + e.Exception.Message; }