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