c# - DatePicker 其他格式的默认日期

标签 c# wpf datepicker

我有一个带有 DatePicket Controller 的 WPF 窗口。 我想显示当前日期而不是“显示日历”文本。

我用了这个引用

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

和这段代码

<DatePicker x:Name="DatePicker1" Grid.Column="1" Grid.Row="0" SelectedDate="{x:Reference sys:DateTime.Now}">

它工作正常,但我想像这样更改日期格式:yyyy。毫米。日。 我该怎么做?

最佳答案

您可以通过更改日期选择器的模板来修改底层文本框来实现此目的。请看下面的例子:

<DatePicker SelectedDate="{x:Static sys:DateTime.Now}">
   <DatePicker.Resources>
      <Style TargetType="DatePickerTextBox">
         <Setter Property="Control.Template">
            <Setter.Value>
               <ControlTemplate>
                  <TextBox x:Name="PART_TextBox"
                     Text="{Binding Path=SelectedDate, StringFormat={}{0:yyyy.MM.dd}, 
                     RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
               </ControlTemplate>
            </Setter.Value>
         </Setter>
      </Style>
   </DatePicker.Resources>
</DatePicker>

我改变了SelectedDate="{x:Static sys:DateTime.Now}"来自 x:Referencex:Static使其在测试时正常工作。

结果: enter image description here

顺便说一句,如果您想为多个日期选择器重新使用此代码,那么您只需复制 <Style></Style> 的 XAML。标记(以及其中的所有内容)并将其放入 <Application.Resources> 下的 App.xaml 中样式/格式将应用于所有日期选择器。

我找到了上面的代码here .

关于c# - DatePicker 其他格式的默认日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55287463/

相关文章:

c# - MVC 5 DateTime POST 到 Controller 显示为 1/1/0001

c# - 无法从组合框 C# 中删除项目

c# - SQLite 和 .NET 用户控件

javascript - 网页的日期选择器仅允许单击特定日期

javascript - jQuery UI - 将 jQuery UI 日期选择器转换为 UNIX 时间

c# - 创建 Mailer 和 Mail 类。需要有关处置的建议

c# - 如何从非泛型方法分派(dispatch)到泛型处理程序?

c# - 在 WPF 中,为什么触发 MouseLeave 而不是 MouseDown?

angularjs - Angular Material 日期选择器字段值为空

c# - 使用参数名称动态创建委托(delegate)