将ResourceDictionary添加到类库

我创建了一个类库,它包含WPF Windows和一些从我的c#类inheritance的用户控件,可以帮助我自定义某些wpf控件。

现在我想添加ResourceDictionary,以帮助我在我的wpf类之间共享样式。 可能吗?

谢谢。


编辑:位于MY.WpfPresentation.Main项目(名为Styles.xaml)的资源字典文件:

     

使用它:

              

创建一个像这样的资源字典

           

你可以把它放在你想要的地方

        

@ punker76的答案非常好,对我帮助很大,但值得补充的是,如果你创建一个空文件并在其中添加资源标签,你还应该转到文件属性,将BuildAction设置为ResourceCopy To … to Do not复制并清除CustomTool属性(如果已设置)。

在我看来,问题是将WPF资源字典文件添加到类库项目。 答案是您不能为经典类库执行此操作,而是执行WPF应用程序项目, WPF自定义控件库项目或WPF用户控件库 。 对于这些项目类型,您可以添加新的资源字典(WPF)选项,该选项可通过向项目添加新项目来实现。

在我看来,实际的问题标题和问题本身并不符合公认的答案。

要将经典库项目转换为WPF库项目(为了添加UserControlsWindowsResourcesDictionaries等),可以在第一个PropertyGroup节点的.csproj文件中添加以下XML:

 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 

完整示例:

     Debug AnyCPU {50E8AAEA-5CED-46BE-AC9A-B7EEF9F5D4C9} Library Properties WpfApplication2 WpfApplication2 v4.6.1 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 true    

是。 您可以直接将ResourceDictionary添加到项目中。

当您想要使用它时,您可以根据需要将它合并到XAML中,方法是使用MergedDictionaries将独立的ResourceDictionary “合并”到该类型的资源中(即:Window或UserControl)。

既然我还不能发表评论,但我现在两次使用这个答案:

要添加到nmariot的答案:


提示1

从visual studio访问.csproj文件

右键单击项目 – >单击“卸载项目”

右键单击项目[处于卸载状态] – >单击“编辑”filename.csproj”

提示2

一旦添加资源字典,避免错误警告:

添加对System.Xaml的引用