C# DatePicker其他格式的默认日期

C# DatePicker其他格式的默认日期,c#,wpf,datepicker,C#,Wpf,Datepicker,我有一个带有日期纠察控制器的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。

我有一个带有日期纠察控制器的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。嗯。dd。
如何执行此操作?

您需要指定如下所示的格式,下面是文本块的示例:

<TextBlock Text="{Binding Source={x:Static system:DateTime.Now}, StringFormat=Date: {0:yyyy.MM.dd}}" />

对于DatePicker,必须设置控件模板以修改TextBlock。以下是来自的示例代码:

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


您可以在此处使用任何标准日期时间格式。希望这能有所帮助。

您可以通过更改日期选择器的模板来修改底层文本框。请参见下面的示例:

<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:Reference
更改为
x:Static
,以使其在测试时工作

结果:


顺便说一句,如果您想对多个日期选择器重复使用此代码,那么您可以复制
标记(以及其中的所有内容)的XAML,并将其放入App.XAML的

try FormatString属性下