尽管使用了正确的代码,Windows窗体应用程序的文化也没有改变(我认为当然)。
在win窗体应用程序的Program.cs文件中,我尝试将当前的区域性从en-US更改为fa-IR,并使用以下代码:
CultureInfo culture = CultureInfo.CreateSpecificCulture("Fa-IR");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
答案 0 :(得分:0)
我认为,在更改系统的文化之后,系统的语言也应该更改。虽然我错了。通过添加以下代码,我能够将Windows语言更改为波斯语。
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(culture);
答案 1 :(得分:0)
public static void InitializePersianCulture() {
var culture = new CultureInfo("fa-ir");
var info = culture.DateTimeFormat;
var calendar = new PersianCalendar();
info.Calendar = calendar;
var field = typeof(CultureInfo).GetField("Calendar", System.Reflection.BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic);
if (field != null)
field.SetValue(culture, "fa-ir");
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
CultureInfo.CurrentCulture.DateTimeFormat = info;
CultureInfo.CurrentUICulture.DateTimeFormat = info;
}