WPF DatePicker与Calendar的使用和样式修改

什么是DatePicker,Calendar

  • Calendar:日历(显示年月日视图控件)
  • DatePicker:日期选择器(是一个更小的控件,点击控件时才会弹出一个日历)

Calendar使用

WPF DatePicker与Calendar的使用和样式修改_第1张图片

常用属性
  • DisplayMode:显示日历时最高的一级,以十年、年、月来显示,一般用Month
  • DisplayDateStart:日历的开始日期
  • DisplayDateEnd:日历的结束日期
  • DisplayDate:显示开始月份和日期
  • SelectedDate:选择的日期
  • FirstDayOfWeek:某一天作为日历第一列的第一天(FirstDayOfWeek="Monday")
  • IsTodayHighlighted:设置今日是否高亮显示("True"为高亮显示)
  • SelectionMode:日期选择范围("MultipleRange"为可选择多个日期范围)
常用事件
  • SelectedDatesChanged:当选择的日期发生改变时
private void Calender_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
    //SelectionMode="SingleDate"
    this.Title = Calender.SelectedDate.ToString();

    //SelectionMode="MultipleRange"
    /*
    for (int i = 0; i < Calender.SelectedDates.Count; i++)
    {
        this.s += this.Calender.SelectedDates[i].ToString();
        this.Title = this.s;
    }
    */
}
日期限制

        根据您使用 Calendar 控件的目的,您可能希望日期不能被选中且颜色变淡,可使用BlackoutDates集合添加限定日期范围。

WPF DatePicker与Calendar的使用和样式修改_第2张图片


        
        
   

DatePicker使用

WPF DatePicker与Calendar的使用和样式修改_第3张图片

常用属性
  • IsDropDownOpen:日历视图是否一开始就展开(“True”为一开始就展开)
常用事件
  • DateValidationError:用户输入非法的日期时触发
private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e)
{
    MessageBox.Show($"输入非法日期:{e.Text},错误原因是:{e.Exception.Message}"); 
}

Calendar样式修改

Calendar的主要样式
  • CalendarStyle:日历框架样式
  • CalendarButtonStyle:日历面板样式
  • CalendarDayButtonStyle:天的样式
  • CalendarItemStyle:月份样式

WPF DatePicker与Calendar的使用和样式修改_第4张图片


    
        
        
    
    
        
        
            
        
    

自定义DatePicker控件

        通过自定义的DatePicker控件可显示日期和时间,代码有详细注释,方便移植到项目。

WPF DatePicker与Calendar的使用和样式修改_第5张图片


    
        
        
            
                
                
            
            
                
                    
                        
                            
                        
                    
                    
                
            
        
        
        
                
            
            
            
                
                    
                        
                            
                            

                            
                            
                            
                            

                            
                            
                                
                                    
                                    
                                        
                                        
                                    
                                
                            
                        
                        
                            
                                
                            
                        
                    
                
            
        

        
    
    
        

        
        
        
        
            
                
                    
                        
                    
                    
                        
                            
                            
                            
                        
                        
                        
                        

                        
                            
                                
                                
                                
                                
                                
                            
    
                            
                            
                            
                            
                            
                        

                        
                    
                

            

        
    

自定义DatePicker控件实例链接:

https://download.csdn.net/download/lvxingzhe3/88701624

参考:

基础内容: 自定义新的 WPF Calendar 控件 | Microsoft Learn

https://www.cnblogs.com/lzjsky/p/17211723.html

wpf自定义样式DatePickerStyle及Calendar控件_wpf中calendar控件美化-CSDN博客

https://www.cnblogs.com/anding/p/4979764.html

WPF 入门教程Calendar控件

你可能感兴趣的:(WPF,wpf)