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

How to format Windows.UI.Xaml.Controls.DatePicker to dd-MM-yyyy in UWP?

我目前有一个 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?

编辑:转换器的日期格式正确,但实际的视觉 XAML 对象是 MM-dd-yyyy。

您是否尝试过:return date.ToString("dd-MM-yyyy); 而不是仅 return 日期;?

编辑:您希望它反转 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>