Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向我的WPF项目动态添加多个资源字典_C#_Wpf_Xaml_Dictionary - Fatal编程技术网

C# 向我的WPF项目动态添加多个资源字典

C# 向我的WPF项目动态添加多个资源字典,c#,wpf,xaml,dictionary,C#,Wpf,Xaml,Dictionary,我需要一些关于WPF中的资源字典的帮助。我有多个.dll,每个dll中都有一个或多个资源字典。问题是我不知道DLL中资源字典的名称或位置。现在,我正在寻找一种方法,将所有这些资源字典添加到我的Main.xaml中的代码中 也许是在集合中有反射的东西 ResourceDictionary resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri("Dictionary1.xaml", Uri

我需要一些关于WPF中的资源字典的帮助。我有多个.dll,每个dll中都有一个或多个资源字典。问题是我不知道DLL中资源字典的名称或位置。现在,我正在寻找一种方法,将所有这些资源字典添加到我的Main.xaml中的代码中

也许是在集合中有反射的东西

ResourceDictionary resourceDictionary = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary1.xaml", UriKind.Relative);

ResourceDictionary resourceDictionary2 = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary2.xaml", UriKind.Relative);

resourceDictionary2.MergedDictionaries.Add(resourceDictionary);

Resources.MergedDictionaries.Add(resourceDictionary2);
但它只添加了一个资源字典。。。你能帮我吗?

试试这个:

ResourceDictionary resourceDictionary = new ResourceDictionary
{
     Source = new Uri("Dictionary1.xaml", UriKind.Relative)
};

ResourceDictionary resourceDictionary2 = new ResourceDictionary
{
     Source = new Uri("Dictionary2.xaml", UriKind.Relative)
};

Application.Current.Resources.MergedDictionaries.Add(resourceDictionary );
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary2 );

我认为你的逻辑是错误的。试一试

//Load #1 ResourceDictionary
ResourceDictionary resourceDictionary = new ResourceDictionary();
resourceDictionary.Source = new Uri("Dictionary1.xaml", UriKind.Relative);

//Load #2 ResourceDictionary
ResourceDictionary resourceDictionary2 = new ResourceDictionary();
resourceDictionary2.Source = new Uri("Dictionary2.xaml", UriKind.Relative);

//Merge #1 & #2 
resourceDictionary2.MergedDictionaries.Add(resourceDictionary);

//Add to Resources
Resources.MergedDictionaries.Add(resourceDictionary2);

你有什么例外吗?是的,我的项目有问题。我做了一个新的清洁项目,尝试了不同的解决方案,tabby的解决方案奏效了。谢谢