C# 在wpf中合并ResourceDictionary的问题
首先我合并了所有的字典,然后我尝试动态地从字典中获取值,如下所示。但是它显示了错误('MyString'resource not found)C# 在wpf中合并ResourceDictionary的问题,c#,wpf,xaml,C#,Wpf,Xaml,首先我合并了所有的字典,然后我尝试动态地从字典中获取值,如下所示。但是它显示了错误('MyString'resource not found) 对于英语,它显示de-de。你是复制粘贴的受害者吗 不确定是否使用WPF,但在silverlight应用程序中。Current.Resources[“MyString”]起作用 除此之外,您还可以将其添加到Application.Resources.MergedDictionaries中,这样Application.Resources.MergedDic
对于英语,它显示de-de。你是复制粘贴的受害者吗 不确定是否使用WPF,但在silverlight应用程序中。Current.Resources[“MyString”]起作用 除此之外,您还可以将其添加到Application.Resources.MergedDictionaries中,这样Application.Resources.MergedDictionaries[“我的字符串”]可能也适用于您 也许FindResource只是寻找Application.Current.Resources
- 我怀疑
在应用程序。Current
应用程序的构造函数中可用作
应该是应用程序。Current
应用程序本身。尝试使用
this.Resources.MergedDictionaries.Add来代替
- 你的“App.xaml”里有什么东西吗?如果是这样,它将替换
,并且您在构造函数中设置的所有内容都将丢失App.Resources
public partial class App : Application
{
public App()
{
switch (Thread.CurrentThread.CurrentCulture.ToString())
{
case "de-DE":
var German = new Uri("..\\GlobalString\\Dictionary_de-DE.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = German });
break;
case "it-IT":
var Italy = new Uri("..\\GlobalString\\Dictionary_it-IT.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = Italy });
break;
case "es-ES":
var Spanish = new Uri("..\\GlobalString\\Dictionary_es-ES.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = Spanish });
break;
case "fr-FR":
var France = new Uri("..\\GlobalString\\Dictionary_fr-FR.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = France });
break;
default:
var English = new Uri("..\\GlobalString\\Dictionary_de-DE.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = English });
break;
}
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string StringFromDictionary= Application.Current.FindResource("MyString");
}