我正在尝试添加对另一个项目(例如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中获得这些库中定义的任何画笔资源。任何想法?
答案 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 。
我去了MainWindow.xaml并打开了资源面板。在那里我链接了字典。
链接后,它会显示在资源列表中。
答案 2 :(得分:0)
希望您已经找到了解决方案,但如果不是,我会使用this link here作为常量参考。
它执行以下操作:演示如何链接外部资源项目中的ResourceLibraries,如何命名样式并组织它们,以便团队中的任何人知道发生了什么,等等。这么简单,太棒了。
希望它有所帮助。