如何在Windows 10 UWP上获取用户所在地区?

3
我希望根据用户当前所在地区下载网站的内容。为此,我需要像 USFR 这样的国家代码。如何获取这些代码? 我试过以下方法:

这总是显示美国(US),我认为这是来自应用清单(app manifest)。

var region = RegionInfo.CurrentRegion;

并且这个:

var cultureName = new DateTimeFormatter("longdate", new[] { "US" }).ResolvedLanguage;

return new CultureInfo(cultureName);

这个方法可行。返回的结果类似于en-US,我可以从中提取国家代码。但有时它可能只返回语言en而没有国家代码。

如何获取系统当前的两位字符国家代码?谢谢。


请注意,许多人将设备设置为美国,但他们并不在美国。 - Quincy
@Quincy 是的,我知道。对于我的情况来说,这不是一个问题,这是他们的选择。 - Blendester
1个回答

9

要获取用户的主页区域设置,我们可以使用GlobalizationPreferences.HomeGeographicRegion属性。

// Obtain the user's home geographic region.
var region = Windows.System.UserProfile.GlobalizationPreferences.HomeGeographicRegion;

在安装Windows时通常会设置所在地区,可以在
设置 → 时间和语言 → 区域和语言 → 国家或地区中进行设置。

Windows.Globalization 还提供了一个GeographicRegion对象作为辅助对象。它允许应用程序检查特定地区的详细信息,例如其显示名称、本地名称和使用的货币。

// Get the user's geographic region and its two-letter identifier for this region.
var geographicRegion = new Windows.Globalization.GeographicRegion();
var code = geographicRegion.CodeTwoLetter;

更多信息请参见管理语言和地区


非常感谢,非常有用。 - Blendester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接