为什么即使我在 Windows 中设置了“DE-CH”,CurrentUICulture 还是“DE-DE”

Adr*_*ian 5 c# windows wpf cultureinfo currentuiculture

在我的 WPF 应用程序中,CurrentUICulture 没有被 Windows 正确接管或错误地存储在 Windows 中。

Windows 中的区域和语言设置在我找到“Deutsch (Schweiz)”的所有地方都有。应用程序中的 CurrentUICulture 显示“Deutsch (Deutschland)”而不是“Deutsch (Schweiz)”。我已经在多台计算机上测试过它(域用户和本地用户)。

问题可能出在哪里?在 Windows 中是否有很难找到此设置的地方?

重要提示:我知道我可以在应用程序中设置文化。我不需要像这样的答案 Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-ch")

我只想了解该机制的工作原理以及它从何处获取信息。

这是我的 Windows 设置中的一些屏幕截图:

欢迎屏幕和新用户帐户设置

地区和语言

高级设置

地区

谢谢,阿德里安

dym*_*oid 4

我想这是微软的“设计初衷”。

请阅读这个问题。对此有一个相当高的赞同评论:

请记住,微软根据他们的智慧,不会将美国英语和(英国)英语或其他英语的 UI 文化分开。英语没有 MUI,这意味着CurrentUICulture在英语机器上将始终为 en-US,无论 是什么 CurrentCulture,都可以设置为本地化区域设置。

虽然我不确定此信息来自哪里,但您当前的操作系统行为相当证实了这一点:您更改了区域设置 ( CurrentCulture),但CurrentUICulture始终保持“国家不可知”为“de-DE”(如“en-US”中的“en-US”)任何“en-*”区域设置的注释)。