C# 有没有办法从C CultureInfo获取旗帜图像?

C# 有没有办法从C CultureInfo获取旗帜图像?,c#,.net,localization,cultureinfo,C#,.net,Localization,Cultureinfo,如果我有一个CultureInfo实例,是否有任何简单的方法(内置、通过框架或通过操作系统)来获得与该区域性匹配的标志图标?这样可以避免创建单独的查找 我找不到一个成员函数来完成这项工作,但可能还有其他一些不太费力的方法,涉及到我没有找到的其他.NET类。没有。没有简单的内置方法,通过.NET framework或Windows操作系统,获取给定CultureInfo实例的匹配标志图标。正如@Peter Duniho所说,.NET Framework中没有内置的方法。此外,CultureInfo

如果我有一个CultureInfo实例,是否有任何简单的方法(内置、通过框架或通过操作系统)来获得与该区域性匹配的标志图标?这样可以避免创建单独的查找


我找不到一个成员函数来完成这项工作,但可能还有其他一些不太费力的方法,涉及到我没有找到的其他.NET类。

没有。没有简单的内置方法,通过.NET framework或Windows操作系统,获取给定CultureInfo实例的匹配标志图标。

正如@Peter Duniho所说,.NET Framework中没有内置的方法。此外,CultureInfo代表地区,而旗帜代表国家,在许多情况下,两者并不完全匹配。如果你遇到一些用户,你可能会遇到外交问题

无论如何,如果您想要一些简单的东西,您可能希望使用ISO 3166-alpha1 2个字母的国家/地区代码,然后将您的CultureInfo转换为给定区域设置的RegionInfo,最后获得两个字母的ISO地区名称:

var r = new RegionInfo(yourCultureInfo.LCID);
var flagName = r.TwoLetterISORegionName + ".gif";

最后,如果存在这样的文件,则显示它。请注意,您可能会使用PNG版本,不同的语言可能会映射到同一个国家,我想到的是瑞士,在那里他们使用4种官方语言。

扩展Alex的答案。获得ISO代码后,可以使用此简单库从两个字符串中的FAM集合生成标志的ImageSource:

它不是内置的,但很容易使用

图像最终看起来像这样:


可能重复:@swithwings:啊,可能是的。但是,这两个答案都没有被采纳,所以我不能把这一个标为傻瓜。也许我们可以在这里得到一些好的答案。正确的、字面上的答案是否定的。NET和Windows都没有提供您想要的功能。也许你应该改写你的问题,这样一个正确的答案才能真正满足你的真正需要,而不是局限于我不想做任何额外的工作。不管是好是坏,如果你想这样做,这将涉及到一些实际的工作。@PeterDuniho:我真正的需要是找到我所说的问题的确切答案。如果答案是否定的,那么答案是否定的。@LightnessRacesinOrbit仍然您的问题可能对其他正在寻找实际显示此类图像的方法的人有用,因此我的回答是这样一种方法:不使用单独的数据查找,而是在一组图像中使用文件查找。这是一个很好的辅助答案,和公平点对国家。谢谢:如果你提供了下拉列表的示例代码,我看起来也一样。链接回购中提供了用于下拉列表的示例代码。