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

标签 wpf custom-controls resourcedictionary

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

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

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

最佳答案

This answer帮我找到了诀窍。

  • 创建一个名为 Themes\Generic.xaml 的文件合并资源字典。
  • 将以下属性添加到 Assembly.cs
    [程序集:ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
  • 关于wpf - 如何为dll中的自定义控件分配资源字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941373/

    相关文章:

    .net - 找不到资源词典

    c# - TemplateBinding 未传递到 ControlTemplate.Resources 中创建的 VisualBrush

    javascript - 如何从 JavaScript(客户端)调用 Helper Method(服务器端)?

    IOS:drawRect 在角上显示 1px

    c# - 无法解析 UWP App 中 System.Runtime 的范围

    c# - 查找资源字典的设计时错误 - 项目之间不一致

    c# - Task.Run() 和在 Xamarin 表单上调用 async void AAA() 有什么区别?

    c# - 使用MVVM(无任何代码)且无导航时,单击按钮时更改 View

    wpf - 如何检查 WPF Prism 中的复选框是否选中

    c# - 带有 MVVM 和 Prism 的 ResourceDictionary