我按照msdn关于本地化的教程,他们实现了这样的本地化绑定:
{Binding Path=Localizedresources.AppName,
Source={StaticResource LocalizedStrings}}
但是当我使用Expression Blend时,本地化绑定的实现方式如下:
{Binding Localizedresources.AppName, Mode=OneWay}
我不明白为什么他们不同。 MSDN和Expression Blend之所以有不同的原因吗?我有理由偏好另一种方式吗?
答案 0 :(得分:2)
前者是Windows Phone的实现,因为Windows Phone不支持静态类绑定(而不是WPF)。
后者适用于WPF,不适用于Windows Phone。
此外,如果您希望Expression Blend支持本地化,请将LocalizedStrings
资源添加到DesignTimeResources.xaml文件(通常位于Properties文件夹中)。然后,一旦构建项目,Expression Blend也将在设计时显示本地化。
答案 1 :(得分:0)
此外,如果您希望能够在运行时更改语言,一个简单但有用的技巧是在更改线程上的当前(UI)文化后 - 在“AppName”上调用PropertyChanged - 它将立即更新所有您应用中的本地化字符串。