Wpf 在我的类库项目中使用资源词典样式,而不合并词典
我正在创建一个包含WPF用户控件的类库项目我的要求是所有控件都具有相同的样式。我的项目看起来像: 我为解决这个问题所做的事情:Wpf 在我的类库项目中使用资源词典样式,而不合并词典,wpf,resources,resourcedictionary,Wpf,Resources,Resourcedictionary,我正在创建一个包含WPF用户控件的类库项目我的要求是所有控件都具有相同的样式。我的项目看起来像: 我为解决这个问题所做的事情: 添加了WPF应用程序系统.Xaml、WindowsBase等所需的所有引用。。这样我就可以在类库项目中使用wpf控件 在AssemblyInfo.cs中,我添加了: [汇编:ThemeInfo(ResourceDictionaryLocation.None,ResourceDictionaryLocation.SourceAssembly)] 将ResourceDic
[汇编:ThemeInfo(ResourceDictionaryLocation.None,ResourceDictionaryLocation.SourceAssembly)]
我知道它工作得很好,但关键是。每次创建新的userControl时,我都必须合并字典。在一个常规的WPF应用程序上,我只需在App.xaml上合并一次字典,就可以在整个应用程序上使用该字典如何避免每次创建新的userControl时都必须合并词典?如果我计划添加新的资源词典,我必须转到所有userControl并合并另一个词典也许我写的问题标题不正确,我的问题应该是如何将App.xaml文件添加到类库项目中您应该替换源值
ResourceDictionary1.xaml
,如下所示:
Source="pack://application:,,,/ControlsDLL;component/ResourceDictionary1.xaml">
或者简单如下:
<UserControl.Resources>
<ResourceDictionary Source="pack://application:,,,/ControlsDLL;component/ResourceDictionary1.xaml"></ResourceDictionary>
</UserControl.Resources>
您可以尝试将程序集的公共资源放入Themes\Generic.xaml
资源字典中(生成操作设置为“页面”)。这就是WPF期望控件库的默认、独立于主题的样式的地方,所以这些资源应该自动加载到应用程序中。通常,该文件实际上并不声明任何资源,而是使用MergedDictionaries
从其他文件中拉入资源。为什么不在解决方案中有一个wpf项目,并在其中添加类库作为引用呢。从那里,您可以调用用户控件或普通窗口作为启动屏幕。请参阅。简而言之,类库可以在设计时和运行时使用启动应用程序中定义的应用程序资源。
<UserControl.Resources>
<ResourceDictionary Source="pack://application:,,,/ControlsDLL;component/ResourceDictionary1.xaml"></ResourceDictionary>
</UserControl.Resources>