我有一个WPF application on the dotnet core 7
平台,在App class
中,在OnStartup
事件中,我更改了文化,如下所示:当我使用DatePicker
时,当我点击date selection button
时,它正确地向我显示波斯日历。但是,当我选择一个日期时,它会以波斯数字显示格里高利日期。当我点击页面顶部的年份来选择日期时,它会用波斯语向我显示格里高利历的月份。然后,当我再次点击时,它会显示格里高利年。我该怎么做才能解决这个问题?我附上了一个程序运行的示例图像。
protected override void OnStartup(StartupEventArgs e)
{
CultureInfo cultureInfo = new CultureInfo("fa-IR");
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
}
...
<StackPanel FlowDirection="RightToLeft" VerticalAlignment="Center" Margin="10,0,10,0" Height="209">
<DatePicker />
...
1条答案
按热度按时间tjjdgumg1#
我认为默认的DatePicker没有做到这一点,C#中的CultureInfo主要是为了提供有关各种文化方面的信息,如语言,货币,日期和时间格式等。但是,它本身并不支持在不同的日历系统之间进行转换,例如公历和贾拉利(波斯)日历。
要做到这一点,你需要使用一个组件,支持Jalali日历。互联网上有很多这样的东西:this
或者我认为你可以在选中CultureInfo Values后手动更改默认的月份名称,比如: