我有个问题
Thread.CurrentThread.CurrentUICulture is de-DE Thread.CurrentThread.CurrentCulture is de-CH.
当我将键盘布局更改为de-CH时,Thread.CurrentThread.CurrentUICulture没有更改为de-CH。我该怎么做才能改变这个值呢?问题是我在WPF中得到的是“,"而不是”.“
xzlaal3s1#
直接回答您的问题:键盘布局不是UI区域性。CurrentUICulture是Windows语言。不确定其他Windows版本,但在Windows 11中它是Settings -> Time & Language -> Language & Region -> Windows display language:
CurrentUICulture
Settings -> Time & Language -> Language & Region -> Windows display language
但是十进制分隔符不是由CurrentUICulture定义的,而是CurrentCulture,这是不同的。在Win 11中,它是区域格式:
CurrentCulture
通常,正确的小数点分隔符策略(作为一般应用程序本地化的一部分)是一个大问题,可以根据用户偏好/业务期望等以许多不同的方式解决。可能的备选办法是:1.只要使用当前的文化,并相信用户将使用其文化的分隔符1.强制用户只使用“.”并在解析时指定CultureInfo.InvariantCulture1.尝试解析两个分隔符都包含的number还有其他人
CultureInfo.InvariantCulture
nhn9ugyo2#
在Windows 10下,这里是语言设置。除语言识别外,所有设置均设置为多伊奇(瑞士)。
但我明白了
使用.NET 7
2条答案
按热度按时间xzlaal3s1#
直接回答您的问题:键盘布局不是UI区域性。
CurrentUICulture
是Windows语言。不确定其他Windows版本,但在Windows 11中它是Settings -> Time & Language -> Language & Region -> Windows display language
:但是十进制分隔符不是由
CurrentUICulture
定义的,而是CurrentCulture
,这是不同的。在Win 11中,它是区域格式:通常,正确的小数点分隔符策略(作为一般应用程序本地化的一部分)是一个大问题,可以根据用户偏好/业务期望等以许多不同的方式解决。可能的备选办法是:
1.只要使用当前的文化,并相信用户将使用其文化的分隔符
1.强制用户只使用“.”并在解析时指定
CultureInfo.InvariantCulture
1.尝试解析两个分隔符都包含的number
还有其他人
nhn9ugyo2#
在Windows 10下,这里是语言设置。除语言识别外,所有设置均设置为多伊奇(瑞士)。
但我明白了
使用.NET 7