我正在尝试构建一个多语言应用程序;到目前为止,TextBlocks是多语言的,并且可以从一种语言动态切换为另一种语言。
现在,我正在尝试使MessageBox成为多语种,但是资源没有更新,而只是使用默认语言。
TextBlock Text="{DynamicResource ResourceKey=Sentence}"
// updating with the ResourceDictionary
string messageBoxMessage=
(string)Application.Current.FindResource("Sentence");
// not updating with the ResourceDictionary
我希望messageBoxMessage
像TextBlock
一样进行更新。
但是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);
}
答案 0 :(得分:0)
我使用以下代码,现在一切都在正确更新。
var MessageBoxMessage = this.Resources["Sentence"].ToString();