在我的应用程序中,我有2个资源词典(西班牙语和英语),其中包含应用程序的所有字符串。在主窗口中,我有一个组合框,用户可以从中选择所需的语言。我想要做的是,当用户点击指定的语言时,它应该改变整个应用程序的语言,而不仅仅是当前窗口。我在这里搜索了一个简单的解决方案但找不到任何解决方案。任何人都可以建议一种方法来实现这一目标吗?
目前我用这种方式更改当前表单的语言
关于组合框选择改变事件
private void Language_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ResourceDictionary dictionary = new ResourceDictionary();
string lang = e.AddedItems[0].ToString();
dictionary.Source = new Uri(@"/Resources/Languages/"+lang+".xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(dictionary);
}
PS:我不想关闭并重新打开窗口以应用更改
答案 0 :(得分:0)
WPF Localization Extension提供即时语言更改,无需重新启动应用程序。
请注意,此方法使用*.resx
- 文件进行本地化而非WPF特定ResourceDictionaries
。
您可以按照上面链接中的常用指南操作。此外,您可以阅读this guide。