相关文章推荐
焦虑的柳树  ·  更新日志 - Ant Design·  6 天前    · 
小胡子的数据线  ·  JAVA Swing ...·  4 天前    · 
傻傻的凳子  ·  TabLayout ...·  6 月前    · 
魁梧的羊肉串  ·  measureTimeMillis ...·  1 年前    · 

Calendar控件

DisplayMode="Month" 属性:显示日历时最高的一级,以十年、年、月来显示,一般用Month。
DisplayDateStart="2021-5-1" DisplayDateEnd="2021-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); ;