DatePicker 格式使用用户的首选语言和地区。此控件将自动看起来不同,对于我所在的地区,它是您希望的日/月/年。我试图强制控件使用其他语言,但它似乎是直接从手机设置中获取的。您可以在MSDN 找到一些信息:
如果您需要允许用户选择日期或时间,请使用标准日期和时间选择器控件。这些将自动使用用户首选语言和地区的日期和时间格式。
你可以找到here at MSDN about formating that particular control的其他坏消息:
注意本部分适用于使用 C++、C# 或 Visual Basic 的 Windows 应用商店应用程序。在 Windows Phone Store 应用程序中,格式化会被忽略。
因此,在当前的 API 中,可能很难更改格式。
好消息是顶部的 CHOOSE DATE 文本 - 它会自动本地化,具体取决于用户的语言和地区。因此,如果您的应用程序支持用户的语言,您不必担心。但我还没有找到将其更改为其他文本的方法。
至于按钮被点击之前显示在按钮内部的文本,你可以随时使用Button和DatePickerFlyout,一个带有适当转换器的简单示例:
<Button Content="{Binding ElementName=chosenDate, Path=Date, Converter={StaticResource DateFormatConverter}}">
<Button.Flyout>
<DatePickerFlyout x:Name="chosenDate" />
</Button.Flyout>
</Button>
和转换器类:
public class DateFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
DateTimeOffset chosen = (DateTimeOffset)value;
return string.Format("{0}/{1}/{2}", chosen.Day, chosen.Month, chosen.Year);
// or use chosen.ToString() with format provider
}
public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); }
}