在WPF中更改当前文化后,动态强制UI更新

Ela*_*lad 14 .net wpf internationalization

我需要通过应用程序菜单支持UI语言更改.文本使用资源文件进行本地化(类似于此处的方法1 )

如果我Thread.CurrentThread.CurrentUICulture在ctor调用之前设置InitializeComponent(),则UI会按原样进行更改.

但是,如果在CurrentUICulture应用程序的正常运行期间更改了控件,则不会更新控件(即,无论当前文化如何,文本都保持不变).

有没有办法强制控件刷新CurrentUICulture

Dre*_*rsh 10

你可以使用ResourceDictionary方法与一起DynamicResourceMarkupExtension.使用此方法,您可以交换表示用户所选语言的资源字典,DynamicResourceMarkupExtension并确保新值反映在UI中.

此外,如果您愿意冒险进入自定义解决方案领域,那么本WPF教程中LocalizeMarkupExtension提供了解决方案.