如何在UWP中将Windows.UI.Xaml.Controls.DatePicker格式化为dd-MM-yyyy

本文关键字:DatePicker Controls 格式化 dd-MM-yyyy Xaml UI UWP 中将 Windows | 更新日期: 2023-09-27 18:27:05

我目前有一个Windows.UI.Xaml.Controls.DatePicker,它默认为美国日期表示法MM-dd-yyyy。我想把它改为dd-MM-yyyy,但我找不到如何使用这个特定的DatePicker。我在SO上看到了使用DatePicker的问题和答案,但不幸的是,它不是同一个DatePicker。

我的xaml:

<DatePicker Date="{Binding someDate, Converter="{StaticResource DateTimeToDateConverter}", Mode=TwoWay}"/>

转换器:

public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo language)
{
  DateTime date = (DateTime)value;
  return date;
}

我已经尝试将语言参数添加到DatePicker中,但它根本不受影响。。。我还将系统设置语言从en-US更改为nl-nl,这也不起作用。有人知道我应该如何将DatePicker格式设置为dd-MM-yyyy吗?

EDIT:日期来自转换器,格式正确,但实际的可视化XAML对象是MM-dd-yyyy。

如何在UWP中将Windows.UI.Xaml.Controls.DatePicker格式化为dd-MM-yyyy

您尝试过吗:返回日期。ToString("dd-MM-yyyy");而不是仅返回日期;?

编辑:您希望它反转DatePicker的列日期和月份。为此,您必须修改控件的模板。右键单击DatePicker,编辑模板,编辑副本。然后只需反转生成的模板中的DayTextBlock和MonthTextBlock。

使用此代码设置所需的日期-时间格式。

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