我有一个带有 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:Reference
至 x:Static
使其在测试时正常工作。
顺便说一句,如果您想为多个日期选择器重新使用此代码,那么您只需复制 <Style></Style>
的 XAML。标记(以及其中的所有内容)并将其放入 <Application.Resources>
下的 App.xaml 中样式/格式将应用于所有日期选择器。
我找到了上面的代码here .
关于c# - DatePicker 其他格式的默认日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55287463/