【问题标题】:DatePicker default date in other formatDatePicker 其他格式的默认日期
【发布时间】:2019-08-12 17:21:09
【问题描述】:

我有一个带有 DatePicket 控制器的 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。 我该怎么做?

【问题讨论】:

  • 试试 FormatString 属性

标签: c# wpf datepicker


【解决方案1】:

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

<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 以使其在测试时正常工作。

结果:

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

我找到了上面的代码here。

【讨论】:

    【解决方案2】:

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

    <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>
    

    您可以在此处使用任何标准的 DateTime 格式。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 2020-04-10
      相关资源
      最近更新 更多