我正在做一个关于WPF本地化方法的小研究。我听说过使用标记扩展的想法:
<Label Content="{local:Translate {-- label ID here --}}" />
我非常喜欢这个解决方案:它非常容易实现,而且看起来非常灵活。然而,我有一个顾虑。让我们假设,用户在运行时更改了区域设置。如何确保本地化属性会被重新评估以匹配新的语言?
发布于 2011-02-07 04:21:34
您需要调用DependencyObject.InvalidateProperty。请记住,如果您绑定到实现INotifyPropertyChanged的对象,它们将通过底层数据更改的方式进行重新计算。
可以在给定的DependencyProperty上调用DependencyObject.InvalidateProperty,比如Label.Content。
Label label = new Label();
label.InvalidateProperty(ContentProperty);对于需要重新评估的不同属性,必须执行此操作。在WPF中有一个关于本地化的深入的article on MSDN,用于不同的选择,以及应该调查。
https://stackoverflow.com/questions/4915815
复制相似问题