1

我正在开发一个多语言 WPF 应用程序,我通过 ResourceDictionary 实现了不同的语言。程序中的所有字符串都包含对 ResourceDictionary 键的引用。

这工作得很好,但仅适用于主窗口。我怎样才能将它应用到任何其他窗口呢?

更改语言的代码如下所示:

ResourceDictionary dict = new ResourceDictionary();           
        dict.Source = new Uri("..\\Resource Dictionary\\Jeziki\\SloLanguage.xaml", UriKind.Relative);
        this.Resources.MergedDictionaries.Add(dict);

示例主窗口控件

<MenuItem Header="{DynamicResource datoteka}" Template="{DynamicResource MenuItem}" Foreground="White">
                <MenuItem Header="{DynamicResource novo}" Click="menu_novo_Click" Foreground="Black"/>
                <MenuItem Header="{DynamicResource odpri}" Click="menu_open_Click" Foreground="Black"/>
                <MenuItem Header="{DynamicResource shrani}" Click="menu_save_Click" Foreground="Black"/>
4

1 回答 1

0

我通过改变解决了这个问题

this.Resources.MergedDictionaries.Add(dict);

Application.Current.Resources.MergedDictionaries.Add(dict);

将字典设置为全局(因此每个窗口都可以访问它)

于 2017-03-07T12:25:07.227 回答