C# 向我的WPF项目动态添加多个资源字典
我需要一些关于WPF中的资源字典的帮助。我有多个.dll,每个dll中都有一个或多个资源字典。问题是我不知道DLL中资源字典的名称或位置。现在,我正在寻找一种方法,将所有这些资源字典添加到我的Main.xaml中的代码中 也许是在集合中有反射的东西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
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的解决方案奏效了。谢谢