怎么设置WPF的DatePicker默认显示“请选择一个日期”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置WPF的DatePicker默认显示“请选择一个日期”相关的知识,希望对你有一定的参考价值。

可以,方法有2种,一种是用代码,一种是重写样式,我来演示一下用代码怎么实现

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 //首先在你的App类,即创建项目的时候App.xaml下的类 public partial class App : Application //在启动方法中为时间控件注册一个加载事件 void app_Startup(object sender,StartupEventArgs e) EventManager.RegisterClassHandler(typeof(DatePicker), FrameworkElement.LoadedEvent, new RoutedEventHandler(DatePicker_Loaded)); void DatePicker_Loaded(object sender, RoutedEventArgs e) var dp = sender as DatePicker; if (dp == null) return; var wm = RecursionFindControl<ContentControl>(dp, "PART_Watermark"); if (wm == null) return; //重新默认水印值 wm.Content = "请选择一个日期"; /// <summary> /// 递归寻找指定名称和指定类型的控件(辅助方法) /// </summary> /// <typeparam name="T">寻找的类型</typeparam> /// <param name="reference">对象</param> /// <param name="controlName">需要寻找的控件名称</param> /// <param name="maxLevel">最大递归级数</param> /// <param name="currentLevel">当前已经递归的级数</param> /// <returns>返回寻找的类型</returns> public static T RecursionFindControl<T>(DependencyObject reference, string controlName = "", int maxLevel = int.MaxValue, int currentLevel = 1) where T : class DependencyObject obj = null; if (reference == null) return obj as T; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(reference); i++) obj = VisualTreeHelper.GetChild(reference, i); FrameworkElement elemnt = obj as FrameworkElement; if (elemnt == null) break; if (elemnt is T && ((!string.IsNullOrEmpty(controlName) && elemnt.Name == controlName) || string.IsNullOrEmpty(controlName))) return obj as T; else if (currentLevel < maxLevel)//递归层级限制 obj = RecursionFindControl<T>(obj, controlName, maxLevel, currentLevel + 1) as DependencyObject; if (obj != null) return obj as T; return obj as T;
参考技术A 其实方法很简单
在代码里设置datepicker控件: mydatepicker.SelectedDate=null; 即可
可以写到这个控件的Loaded事件处理中:
((DatePicker)sender).SelectedDate = null;
个人觉得这是比较优雅的处理方法。本回答被提问者采纳
参考技术B 可以 ,方法有2种,一种是用代码,一种是重写样式,我来演示一下用代码怎么实现 //首先在你的App类,即创建项目的时候App.xaml下的类

如何设置jquery datepicker默认显示当天日期

不知道是extjs的dataPicker还是jquery插件的
extjs:

xtype: 'datafiled',
value: new Date()

jquery插件
$("#datepicker").datepicker(

defaultDate : new Date() //还可以是时间字符串,当前日期对应的时间数值

);
参考技术A

开始加载页面就给他赋值

参考技术B 没真正回答问题拜托别给最佳答案好么,别为了那破几把分而误导人,跟个傻鸟是的 参考技术C 最好查一下官方的文档。现在这种控件太多了。每个都不一样。本回答被提问者采纳

以上是关于怎么设置WPF的DatePicker默认显示“请选择一个日期”的主要内容,如果未能解决你的问题,请参考以下文章

jquery ui datepicker怎么设置默认日期

WPF 工具包 DatePicker 更改默认值“显示日历”

DatePicker 显示默认日期 1/1/0001 - C# WPF

WPF DatePicker默认显示当前日期,格式化为年月日(转)

bootstrap datepicker只选择年份

WPF DatePicker 多个日期