我正在尝试使用WinRT中的Current Culture格式化日期时间值。但CurrentCulture属性似乎并不尊重系统文化。
我尝试了以下两个属性,
System.Globalization.CultureInfo.CurrentCulture.DisplayName
System.Globalization.CultureInfo.CurrentUICulture.DisplayName
即使我在“控制面板”中更改了区域,两者都会显示英语(美国)。但这对WPF来说非常好。我做错了什么?
答案 0 :(得分:1)
WinRT使用Windows.Globalisation命名空间中公开的API。看看ApplicationLanguages类
http://msdn.microsoft.com/en-us/library/windows/apps/hh972395.aspx
此课程公开了Languages,ManifestLanguages和PrimaryLanguageOveride属性
答案 1 :(得分:1)
要获得我们可以使用的InvariantCulture设置,
“ApplicationLanguages.PrimaryLanguageOverride = CultureInfo.InvariantCulture.TwoLetterISOLanguageName;”
这对我有用。
答案 2 :(得分:1)
现代应用程序利用用户语言列表来确定默认应用程序语言应该是什么,并使用应用程序语言初始化CurrentCulture和CurrentUICulture。桌面应用程序(wpf)将这些应用程序初始化为用户的默认UI语言和区域设置。
正在发生的两件事情之一:您的应用程序是使用一组有限的语言资源构建的,这些资源以默认为en-US而您的用户语言列表中不包含任何这些语言,或者en-US是您的用户语言列表中的第一种语言,您的应用中有资源。