WPF系列教程(十九):日期控件——Calendar、DatePicker日历控件

项目源码

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); ;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43511299/article/details/121603473