Expression Blend如何添加对第三方库主题中定义的外部资源字典的引用

时间:2013-02-04 08:07:56

标签: wpf expression-blend expression-blend-4

我正在尝试添加对另一个项目(例如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中获得这些库中定义的任何画笔资源。任何想法?

enter image description here

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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

project

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

resource pane

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

RedBrush

答案 2 :(得分:0)

希望您已经找到了解决方案,但如果不是,我会使用this link here作为常量参考。

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

希望它有所帮助。