项目源码

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

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

  1. PVE系列教程(十九)、ubuntu22.04使用Nginx配置chevereto服务器

    PVE系列教程(十九).ubuntu22.04使用Nginx配置chevereto服务器 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一.环 ...

  2. ComicEnhancerPro 系列教程十九:用JpegQuality看JPG文件的压缩参数

    作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十九:用JpegQ ...

  3. twisted系列教程十九–cancel deferred

    Introduction twisted 是一个正在发展的项目,twisted 的开发者们会添加一些新的特色或者扩展旧的.随着twisted 10.1.0 的发布,开发者们增加了一个新的功能–取消,这 ...

  4. 【SQL开发实战技巧】系列(十九):数据仓库中时间类型操作(进阶)如何一个SQL打印当月或一年的日历?如何确定某月内第一个和最后—个周内某天的日期?

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  5. Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3)

    Exchange server 2010系列教程之九 配置exchange server 2010 OWA(3) 前面俩节说了owa的登录和webmail的简化,以及SSO的实现.下面大家看看这个网站 ...

  6. WPF系列教程——(一)仿TIM QQ界面 - 简书

    WPF系列教程--(一)仿TIM QQ界面 - 简书 原文: WPF系列教程--(一)仿TIM QQ界面 - 简书 TIM QQ 我们先来看一下TIM QQ长什么样,整体可以将界面分为三个部分 TIM ...

  7. ComicEnhancerPro 系列教程十八:JPG文件长度与质量

    作者:马健 邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长 ...

  8. 【Visual C++】游戏开发五十一 浅墨DirectX教程十九 网格模型进阶之路

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8770426 作者:毛星云(浅墨 ...

  9. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...

    SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法) 一.概述 在<SpringCloud微服务实战系列(十七)Ouath2在真实场景中的应用之资 ...

  10. 群晖NAS教程(十九)、利用Docker安装青龙面板(京东薅羊毛)

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十九).利用Docker安装青龙面板(京东薅羊毛) 一.安装qinglong容器 在群晖docker套件中,搜索qinglong, ...

最新文章

  1. 大数据的“近因偏差”烦恼
  2. map内置函数分析所得到的思路
  3. uplift model学习笔记
  4. SQLAlchemy 多条件查询
  5. 为什么不能使用 BigDecimal 的 equals 方法做等值比较
  6. 三分钟让你掌握JavaScript中值传递和引用传递的区别
  7. “假冒上市”公司再甩锅:我被服务商给骗了
  8. 看涨戴尔科技的八大原因
  9. Fiddler环境配置教程
  10. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.8
  11. 2020十大高薪资专业和十大高薪资岗位---(之我给程序员丢人了)
  12. Ubuntu 12.04安装QQ2012(12.10也可以,试过了的,其他版本没事过)
  13. 寂静岭3java攻略_《寂静岭3》完整流程攻略
  14. 加载java ie停止工作_OpenLayers webapplication在IE11中停止工作
  15. 压测报502 badgateway问题解决
  16. 使用Spring实现读写分离(MySQL实现主从复制)
  17. (批处理)把文件夹中所有的照片按拍摄日期和时间批量重命名
  18. Apache服务器中的.htaccess文件的配置
  19. 【CodeForces 597A Divisibility】
  20. 那些逝去的电脑报刊(十九年回忆)

热门文章

  1. 51单片机控制舵机c语言代码,一文解析51单片机PWM双舵机控制(附程序)
  2. 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
  3. JavaSe基础总结
  4. ReportMachine
  5. 基于SSM【爱校图书馆管理系统】附源码+论文
  6. 专访Wunderlist主设计师Jan Martin:永远不要盲目跟风流行趋势1
  7. Linux 硬盘读写测速
  8. SplitContainer控件扩展之收缩面板
  9. rational rose的下载和安装教程
  10. 串行加法器和并行加法器_N位并行加法器(4位二进制加法器和减法器)