为什么ResourceDictionary不更新?

时间:2019-06-14 09:59:00

标签: c# wpf

我正在尝试构建一个多语言应用程序;到目前为止,TextBlocks是多语言的,并且可以从一种语言动态切换为另一种语言。

现在,我正在尝试使MessageBox成为多语种,但是资源没有更新,而只是使用默认语言。

TextBlock Text="{DynamicResource ResourceKey=Sentence}"
// updating with the ResourceDictionary

string messageBoxMessage= 
   (string)Application.Current.FindResource("Sentence");
   // not updating with the ResourceDictionary

我希望messageBoxMessageTextBlock一样进行更新。 但是messageBoxMessage值永远不会改变,并保持默认值。

这是其余的代码。现在,MessageBox消息是一个属性,但仍不会更新。

private void CBBEnglish_Selected(object sender, RoutedEventArgs e) { ResourceDictionary resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri("/Resources/Resources.en-US.xaml", UriKind.Relative); Resources.MergedDictionaries.Add(resourceDictionary); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); }

private void ButtonForMessagebox_Click(object sender, RoutedEventArgs e) { MessageBoxMessage = (string)Application.Current.FindResource("Sentence"); // not updating MessageBox.Show(MessageBoxMessage); }

1 个答案:

答案 0 :(得分:0)

我使用以下代码,现在一切都在正确更新。

var MessageBoxMessage = this.Resources["Sentence"].ToString();