SIlverlight应用程序中的系统文化
本文关键字:系统 文化 应用程序 SIlverlight | 更新日期: 2023-09-27 18:10:55
我不知道如何在客户端机器上获取已安装系统的CultureInfo
有CultureInfo.InstalledUICulture
属性,但它似乎在Silverlight中不可用。
的问候乔尼
我相信那种文化。CurrentCulture实际上会为您提供用户的文化。但是,它可以通过当前线程的线程更改或以编程方式设置。CurrentCulture财产。我不确定如果 Silverlight可以访问用户的机器/操作系统文化/语言设置。
正如您在评论中提到的,您不能信任它,因为它在应用程序的生命周期中肯定会发生变化。也许你应该在应用程序第一次启动时记录当前区域性,然后再以编程方式更改它,并无限期地存储它(静态或其他方式)以供你的代码引用。
编辑:另一种可能性是利用托管浏览器和它的JavaScript。谷歌一下,我看到你可以访问window.navigator.language,它会报告浏览器的语言。Internet Explorer喜欢做自己的事情,并报告browserLanguage, userLanguage和systemLanguage。
你可以在页面上写一个小的JavaScript方法(你会想做更多的跨浏览器测试、版本测试和操作系统测试):
function GetUserLanguage()
{
if (window.navigator.language)
return window.navigator.language;
else //yay IE
return clientInformation.browserLanguage;
}
然后在Silverlight中,你可能会有这样的内容:
string userLanguage = (string)HtmlPage.Window.Invoke("GetUserLanguage");
CultureInfo userCulture = new CultureInfo(userLanguage);
我不确定浏览器报告的所有区域性(所有浏览器/版本/操作系统)是否与Silverlight中的区域性列表匹配。