SIlverlight应用程序中的系统文化

本文关键字:系统 文化 应用程序 SIlverlight | 更新日期: 2023-09-27 18:10:55

我不知道如何在客户端机器上获取已安装系统的CultureInfo

CultureInfo.InstalledUICulture属性,但它似乎在Silverlight中不可用。

的问候乔尼

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中的区域性列表匹配。