如何为dll中的自定义控件分配资源字典

时间:2012-10-17 18:57:08

标签: wpf custom-controls resourcedictionary

我的应用程序项目(.exe)中有一个WPF自定义控件MyControl.cs,其样式位于MyControlResources.xaml的资源字典中。此xaml在app.xaml中指定为合并字典的一部分。一切正常。

现在我想将此自定义控件移动到应用程序引用的现有DLL项目中。有没有办法可以在DLL中创建资源字典“赋值”并使其对调用者透明,即应用程序项目可以像使用任何内置控件一样使用它,而不需要您了解有关资源字典的任何信息?

我读过关于创建一个新的自定义控件项目可以做到这一点,但它只是一个我不想为其创建新项目的控件。任何人都知道如何在现有的类库DLL中做到这一点?

1 个答案:

答案 0 :(得分:2)

This answer帮我找到了诀窍。

  1. 创建一个名为Themes\Generic.xaml的文件以合并资源字典。

  2. 将以下属性添加到Assembly.cs

    [assembly:ThemeInfo(ResourceDictionaryLocation.None,ResourceDictionaryLocation.SourceAssembly)]