【WPF学习】第二十五章 日期控件
WPF包含两个日期控件:Calender和DatePicker。这两个控件都被设计为允许用户选择日期。
Calendar控件显示日期,在与Windows操作系统中看到的日历(例如,当配置系统日期时看到的日历)相似。该控件每次显示一个月份,允许从一个月份跳到另一个月份(通过单击箭头按钮),或跳到某个特定的月份(通过单击月份的标题头查看一年中的月份,然后单击月份)。
DatePicker控件需要的空间更少。它模范简单的文本框,该文本框以长日期格式或短日期格式保存日期字符串。DatePicker控件提供了一个下拉箭头,当单击时,会弹出完整的日历试图,该试图和Calendar控件显示的试图仙童。这个弹出试图显示在其他任何内容的上面,就像是下拉组合框。
下图显示了Calendar控件支持的两种显示模式,以及DatePicker支持的两种日期格式。

Calendar和DatePicker控件提供的属性允许你确定显示哪些日期以及哪些日期时可供选择的(以连续的范围提供这些日期)。下表列出了可供使用的属性:
表 Calendar和DatePicker类的属性

日期控件还提供了几个不同事件。最有用的事件是DatePicker控件中的SelectedDateChanged事件,或Calendar控件中类似的SelectedDatesChanged事件,该事件添加了对多个日期选择的支持。可响应这些事件以拒绝特定的日期选择,例如周末的日期:
private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
foreach (DateTime selectedDate in e.AddedItems)
{
if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) ||
(selectedDate.DayOfWeek == DayOfWeek.Sunday))
{
lblError.Text = "Weekends are not allowed"; ((Calendar)sender).SelectedDates.Remove(selectedDate);
}
}
}
可使用支持单个或多个日期选择的Calendar事件加以测试。如果支持多个选择,那么尝试在整个星期的日期上拖动鼠标。除不允许的周末日期外,其他所有日期将保持突出显示,而周末日期将被自动取消选择。
Calendar控件还添加了DisplayDateChanged事件(当用户浏览到新的月份时触发该事件)。DatePicker控件添加了CalendarOpened和CalendarClosed事件(当下拉日历显示和关闭时触发这两个事件),以及DateValidationError事件(当用户在文本输入部分输入不能被解释为合法时间的值时触发该事件)。通常,但用户打开日历试图时会丢弃非法值,但可以选择填充一些文本以通知发生了问题:
private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e)
{
lblError.Text = "'" + e.Text +
"' is not a valid value because " + e.Exception.Message;
}
【WPF学习】第二十五章 日期控件的更多相关文章
- 【WPF学习】第二十二章 文本控件
WPF提供了三个用于输入文本的控件:TextBox.RichTextBox和PasswordBox.PasswordBox控件直接继承自Control类.TextBox和RichTextBox控件间接 ...
- WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
具有主页菜单(中心或透视控件)的中心应用中心 你可能要设计包含许多功能的应用.当你看着这些功能时,可能会决定将它们整理到独立的区域中.这些区域最终会成为用户要访问的应用的独立部分.你需要设计一个简便的 ...
- “全栈2019”Java多线程第二十五章:生产者与消费者线程详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第二十五章:流程控制语句中循环语句while
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Gradle 1.12用户指南翻译——第二十五章. Scala 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录
风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...
- ASP.NET自定义控件组件开发 第五章 模板控件开发
原文:ASP.NET自定义控件组件开发 第五章 模板控件开发 第五章 模板控件开发 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接 ...
- 《Programming WPF》翻译 第5章 7.控件模板
原文:<Programming WPF>翻译 第5章 7.控件模板 如果仔细的看我们当前的TTT游戏,会发现Button对象并没有完全为我们工作.哪些TTT面板有内圆角? 图5-14 这里 ...
- 第二十五章 springboot + hystrixdashboard
注意: hystrix基本使用:第十九章 springboot + hystrix(1) hystrix计数原理:附6 hystrix metrics and monitor 一.hystrixdas ...
随机推荐
- 默认 Servlet
什么是 DefaultSevelet DefaultSevelet 是处理静态资源的 Sevelet. 在什么位置声明它? 它在 $CATALINA_HOME/conf/web.xml 中被全局声明. ...
- freemarker<二>
一.FreeMarker模板文件组成 ①.文本,直接输出的部分 ②.注释,即<#--...-->格式不会输出 ③.FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区 ...
- AS优化
第一步:打开AS安装所在的位置,用记事本打开“红色框”选中的文件. 如图: 第二步:打开“studio64.exe.vmoptions”文件后修改里面的值,修改后如下: 1 2 3 4 5 6 7 8 ...
- hibernate_检索策略
一.概述 检索策略分三大块,类级别检索策略和关联级别检测策略. 类级别检索策略:get.load. 关联级别检索策略:order.getCustomer().getName() 上面这两种应该是看得懂 ...
- Java中的变量、数据类型和运算符
1. java语言是一种强类型的语言,对各种数据类型都有明确的区分,而计算机使用内存来记忆大量运算时需要使用的数据,而当声明一个变量时,即在内存中划分一块空间存储数据,而变量类型决定划分内存空间的大小 ...
- scrapy分布式Spider源码分析及实现过程
分布式框架scrapy_redis实现了一套完整的组件,其中也实现了spider,RedisSpider是在继承原scrapy的Spider的基础上略有改动,初始URL不在从start_urls列表中 ...
- webapp开发之IIS进程调试
1.背景 1.当我的手机连接电脑的时候想要调试居然连接不上,之后我将项目发布之后才可以请求(同一局域网下) 2.你们不觉得发布到IIS再附加进程太烦了么?看了看网上全是这种方法,这不科学!VS已经提供 ...
- win服务器管理工具,服务器vps管理
win系列服务器,vps桌面如何管理?用这个工具: IIS7远程桌面批量管理,同时管理上千台vps,服务器,3389远程端口.
- SpringDataJpa多条件查询代码封装
package com.pantech.cloud.mlogistics.util; import com.mysql.jdbc.StringUtils; import org.springframe ...
- V3微信支付开发笔录
真是坑爹啊,微信支付到处都是坑,一不小心就栽里面了, 文档也不怎么全,经过一周的奋斗终于把微信支付功能搞定,在此写下自己当时走入的误区和一些需要注意的地方,希望后边开发的朋友们可以少走弯路,少被微信坑 ...