WPF日期选择器默认为今天的日期

57

WPF日期选择器默认始终显示“显示日历”。我希望它显示当前/今天的日期。我该怎么做呢?我尝试在构造函数中添加以下代码,但不起作用:

datePicker.SelectedDate = DateTime.Now.Date;
或者
datePicker.DisplayDate = DateTime.Now.Date;
7个回答

167

请尝试使用以下内容...

<my:DatePicker SelectedDate="{x:Static sys:DateTime.Now}"/>

添加这个引用

xmlns:sys="clr-namespace:System;assembly=mscorlib"

2
如果我要设置明天(或者其他需要动态计算的日期),应该如何做呢?我想使用 XAML 实现。 - Konrad Viltersten
2
请参考以下链接:https://dev59.com/anHYa4cB1Zd3GeqPReox - Rob
请注意,此处的'app'前缀是辅助类的命名空间,例如xmlns:app="clr-namespace:AppName.WPFHelpers",其中命名空间AppName.WPFHelpers { public static class DateTimeHelper..... - Rob
如何仅设置年份和月份? - Mike Yang

23

以下代码是可行的。(dpDate是我的日期选择控件)

public MainWindow()
{
    InitializeComponent();
    dpDate.SelectedDate = DateTime.Today;            
}

1

几个选项...

您可以复制DatePicker控件的整个样式,编辑XAML并将其用作默认资源,使TargetType为DatePicker,这将强制在整个应用程序中使用它。

您还可以在本地编辑样式,并在样式中放置自己的TextBox并隐藏DatePickerTextBox,然后适当设置绑定。

这里有一些深入的讨论here,顶部由ericf提供了相当好的解释。


0

0

问题在于你试图访问带有时间的日期,这是行不通的。

今天的日期表示为"DateTime.Today"


0

datePicker.SelectedDate=DateTime.Now;


欢迎来到Stack Overflow!虽然这段代码可能解决了问题,但是包括解释它如何以及为什么解决了问题将有助于提高您的帖子质量,并可能导致更多的赞。请记住,您正在回答未来读者的问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。 - Yunnosch
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

-1
如果您需要在程序中设置日期(或在代码后台中设置),您可以尝试...
datePicker.Text = DateTime.Now.Date.ToString();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接