引用外部xaml资源字典文件

时间:2015-03-03 13:44:15

标签: c# wpf resources styles resourcedictionary

我有一个包含多个类的项目(这是一个dll项目)。我添加了一个xaml文件(让我们称之为styles.xaml),我在其中声明了最常用的样式。

我有另一个项目(让我们在prog中调用),在另一个解决方案中,我想使用styles.xaml中编写的样式。

我尝试右键点击prog - >添加现有项目,我选择了styles.xaml,编写了所有相关代码,并且工作正常。

问题是它将styles.xaml文件复制到我的prog项目目录(因此我现在持有同一资源文件的两个副本)。与常规dlls重新定义不同,它总是在该目录中查找它,如果它不存在则不再复制它。

在源代码控制方面,我不想保存同一资源文件的多个副本,每个应用程序一个,在当前的解决方案中,它看起来像我必须。

我还尝试添加资源,并选择该文件 - 同样的问题。

有没有这样做?

1 个答案:

答案 0 :(得分:1)

例如,你在styles.dll中有:

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <SolidColorBrush  x:Key="BlueColor" Color="Blue"/>
    <!-- Whatever Styles you need -->
</ResourceDictionary>

在BlueTheme.xaml

然后用:

引用它
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://siteoforigin:,,,/styles;component/BlueTheme.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>