2015-01-01 90 views
0

如果我有一個CultureInfo實例,是否有任何簡單的方法—內置,通過框架或通過操作系統—獲得匹配該文化的匹配「標誌」圖標?這將避免必須創建單獨的查找。有沒有辦法從C#CultureInfo獲取標誌圖像?

我找不到一個成員函數來執行the documentation for CultureInfo的工作,但也許還有其他一些不太重要的方法,它涉及到其他我沒有找到的.NET類。

+0

可能重複:http://stackoverflow.com/q/7748425/560648 –

+0

@AsteroidsWithWings:是啊,大概。儘管我的答案都沒有被提出或接受,所以我不能將這個答案標記爲愚蠢。也許我們可以在這裏得到一些很好的答案。 –

+0

正確的文字回答是「否,.NET和Windows都不提供您想要的功能」。也許你應該重新回答你的問題,以便正確的答案能夠真正滿足你的實際需求,而不是限制爲「我不想做任何額外的工作」。無論好壞,如果你想要這個,它會涉及一些真正的工作。 –

回答

3

不可以。通過.NET框架或Windows操作系統,沒有簡單的內置方式可以爲給定的CultureInfo實例獲取匹配的「標誌」圖標。

2

正如@Peter Duniho所說,.NET Framework中沒有內置的方法。此外,CultureInfo代表區域設置,而標誌代表國家,並且有許多情況下兩者不完全匹配。如果遇到一些用戶,您可能會遇到外交問題。

無論如何,如果你想簡單的東西,你可能需要使用famfamfam's flag icons,這已在ISO 3166-α1 2字母國別代碼之後被方便地命名,那麼你的CultureInfo轉換給定的語言環境的RegionInfo,終於搞定了兩個字母的ISO地區名稱:

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

最後,如果這樣的文件存在,然後顯示它。請注意,您可以使用PNG版本,並且不同的語言可以映射到同一個國家(我正在考慮瑞士,他們在那裏講4種官方語言)。

+0

這是一個很好的輔助答案,公平點重現場與國家。謝謝 :) –

1

延長Alex的答案。一旦你的ISO代碼,你可以使用這個簡單的庫從兩個字符串產生標誌的ImageSource(從的famfamfam集):

https://github.com/drewnoakes/famfamfam-flags-wpf

這不是內置的,但它很容易使用。

圖像最後看起來像這樣:

相關問題