6

我正在尝试添加对另一个项目(例如 Elysium)中定义的资源库的引用并在表达式混合中使用它。

这是我在 App.Xaml 文件中合并资源字典的方法。

    <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro.Resources;component/Icons.xaml" />
            <ResourceDictionary Source="pack://application:,,,/Telerik.Windows.Themes.Metro;component/Themes/System.Windows.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

但我似乎无法在 Expression Blend 4 的这些库中定义任何画笔资源。知道吗?

在此处输入图像描述

4

3 回答 3

5

在 Expression Blend 论坛上找到我的答案:http: //social.msdn.microsoft.com/Forums/en/blend/thread/21bdc8a1-4a58-49f9-ae4d-c736b8fd673a

“项目>链接到现有项目>(导航到外部资源字典,选择它并单击确定。)重建。”

于 2013-02-05T09:02:57.210 回答
1

我认为 Source 属性设置不正确。

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary 
                   Source="/WpfControlLibrary1;component/BrushesInAssembly.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<Grid x:Name="LayoutRoot" Background="{DynamicResource RedBrush}"/>

我做了什么来做到这一点:

作为示例,我在 Blend 中创建了一个新的 WPF 项目并添加了一个控件库。我从主项目中引用了程序集。

我用一个画笔RedBrush添加了一个资源字典。

项目

比我去 MainWindow.xaml 并打开资源面板。我在那里链接了字典。

资源窗格

链接后,它会显示在资源列表中。

红画笔

于 2013-02-04T12:43:35.907 回答
0

希望您已经找到了解决方案,但如果没有,我将在此处使用此链接作为恒定参考。

它执行以下操作:展示如何在外部资源项目中链接 ResourceLibraries,如何命名样式并组织它们,以便团队中的任何人都知道发生了什么,等等。如此简单,如此伟大。

希望它可以帮助某人。

于 2013-04-11T16:42:30.960 回答