UI中的文化没有得到更新

时间:2012-02-02 05:38:15

标签: c# silverlight

我尝试在SIlverlight中实现本地化。

我按照此链接

http://timheuer.com/blog/archive/2009/08/26/silverlight-string-localization.aspx

现在的问题是,当我像这样编写文化时很难

  <object>
   ...
  <param name="uiculture" value="ar-SA" />
  <param name="culture" value="ar-SA" />
 </object>

它工作正常但是当我试图通过改变组合框值来改变文化时它没有得到更新UI

<param name="uiculture" value="<%= System.Threading.Thread.CurrentThread.CurrentUICulture %>" />
<param name="culture" value="<%= System.Threading.Thread.CurrentThread.CurrentCulture %>" />

任何机构都可以告诉我,为什么它没有更新UI ..

1 个答案:

答案 0 :(得分:0)

为了改变文化,你需要重新加载silverlight应用程序, 为此,您需要刷新包含silverlight应用程序的页面。这意味着您需要回发到服务器。

我们在应用程序中所做的是“导航”到包含所选语言的QueryString的页面。

创建刷新的代码如下:

HtmlPage.Window.Navigate(New Uri(App.Current.Host.Source, "../MainPage.aspx" + "?" + l_newCulture))

在服务器端,您需要更新会话变量或其他内容,然后使用上面提到的代码,但只使用包含会话变量的属性而不是System.Threading.Thread.Current..,所以在页面中它看起来像这样:

<param name="uiculture" value="<%= SelectedCurrentUICulture %>" />
<param name="culture" value="<%= SelectedCurrentCulture %>"
祝你好运 利奥尔