2013-02-04 54 views
6

我試圖添加對在另一個項目(例如Elysium)中定義的資源庫的引用,並在表達式混合中使用它。Expression Blend如何添加對第三方庫主題中定義的外部資源字典的引用

下面是我如何合併我的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

+0

你有沒有找到解決這個問題的方法?我遇到了完全相同的問題 –

+0

@DeanChalk是的,我在下面發佈了我的解決方案,但不允許將我的答案標記爲解決方案。如果您覺得有用,請嘗試標記爲答案。謝謝。 –

回答

4

發現我在Expression Blend的論壇回答: 「(導航到外部資源字典,選擇它,然後單擊確定)項目>鏈接到現有項目> 重建。」 http://social.msdn.microsoft.com/Forums/en/blend/thread/21bdc8a1-4a58-49f9-ae4d-c736b8fd673a

+2

如果外部資源在dll中怎麼辦?我也在我的應用程序中使用MahApps.Metro,並且希望能夠使用Blend從我的視圖中的主題引用資源(主要是畫筆),以便爲我發現它們。 –

+0

我剛剛做了這個,並且有一個必要的額外步驟。鏈接和重建後,按照Sorskoot的以下說明將第二個項目中的視圖或控件鏈接到剛剛鏈接到項目的字典。只有這樣您才能在對象的高級選項菜單中選擇共享資源作爲「本地資源」。 – arwenvh

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}"/> 

我做什麼得出這樣的:

作爲樣品我創建了混合一個新的WPF項目並添加控件庫。我從主項目中引用了程序集。

我用一把刷子添加了一個資源字典,RedBrush

project

比我去爲MainWindow.xaml,打開資源面板。在那裏我連接了字典。

resource pane

將它鏈接後顯示出來的資源列表。

RedBrush

+0

我嘗試了您在外部庫(項目庫位於不同命名空間下,類似於第三方用戶控件)上的建議。我看不到如您的示例中所示列出的文件。 –

+0

這幫我把它排序,謝謝! – Marc

0

希望你已經找到了解決方案,但如果沒有,我使用this link here作爲一個常數的參考。

它具有以下功能:顯示如何鏈接外部資源項目中的ResourceLibraries,如何命名樣式並對其進行組織,以便團隊中的任何人知道發生了什麼事等等。非常簡單,非常好。

希望它可以幫助別人。