项目源码
Calendar控件
DisplayMode="Month"
属性:显示日历时最高的一级,以十年、年、月来显示,一般用Month。
DisplayDateStart="-5-1" DisplayDateEnd="-11-29"
属性:日历的开始和结束日期。
FirstDayOfWeek="Monday"
属性用于将某一天作为日历第一列的第一天。
当选择的日期发生改变时,可以用触发事件SelectedDatesChanged="cal1_SelectedDatesChanged"
的响应函数表示。
将选择的日期显示在窗体标题上:
private void cal1_SelectedDatesChanged(object sender, SelectionChangedEventArgs e){this.Title = cal1.SelectedDate.ToString();}
如果要设置选择日期的范围,需要设置Calendar控件的属性SelectionMode="MultipleRange"
,可以选择多个日期范围,按住鼠标或者shift键+左右按钮即可选择多个日期,也可以点击Control键选择不连续的日期。
下面的示例为点击按钮显示所有选中的日期:
string s = null;private void button_Click(object sender, RoutedEventArgs e){for (int i = 0; i < cal1.SelectedDates.Count; i++){this.s += this.cal1.SelectedDates[i].ToString();this.Title = this.s;}}
SelectedDates表示选中的所有日期,是一个数组。
如果SelectionMode="SingleRange"
,只可以选择一个范围,如果SelectionMode="SingleDate"
,只可以选择单个日期。
属性IsTodayHighlighted="False"
设置今日是否高亮显示。
DatePicker控件
是一个更小的控件,点击控件时才会弹出一个日历。
如果我们事先设置了IsDropDownOpen="True"
,那么在第一次点击之前日历视图就会显示。在我们选择之后就会自动关闭。
DatePicker控件也可以在文本框内手动输入日期,所以用户可能会输入非法的日期,可以用事件DateValidationError="DatePicker_DateValidationError"
来处理。
private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e){MessageBox.Show("用户输入了一个非法日期:" + e.Text + "。错误原因是:" + e.Exception.Message); ;}