2014-01-23 32 views
1

我有兩個wpf解決方案使用相同的類庫(我寫過一個)。該庫引用主項目資源字典中的sytles(作爲靜態資源)。在其中一種解決方案中,庫在資源字典中查找這些靜態資源,但在另一個項目中靜態資源未解析。共享庫沒有看到資源字典

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary> 
       <local:AppBootstrapper x:Key="bootstrapper" /> 
      </ResourceDictionary> 
      <ResourceDictionary Source="StoryMakerStyle.xaml" /> 
      <ResourceDictionary Source="Resources\GlassButton.xaml"/> 
      <ResourceDictionary Source="Resources\Slider.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

凡StoryMakerStyle.xaml是在一個應用程序的資源字典的名稱:在這兩種情況下,資源字典在主應用程序的App.xaml如下聲明。在另一箇中稱爲FlashcardsStyle.xaml。其他兩個ResourceDictionary引用在兩個解決方案中都是相同的。

對於爲什麼對資源字典的引用在一個解決方案中解析而不是另一個解決方案的任何建議? 在此先感謝

回答

0

我假設這是2項目的解決方案。你需要引用ResourceDictionaries當像這樣來指定哪些項目:

<ResourceDictionary Source="/ProjectNamespace;Resources/GlassButton.xaml"/> 
<ResourceDictionary Source="/ProjectNamespace;Resources\Slider.xaml" /> 
+0

我要澄清我的問題:我應該說我有兩個WPF的解決方案,而不是項目。在其中一種解決方案中,庫在資源字典中查找這些靜態資源。兩個ResourceDictionary參考在兩個解決方案中都是相同的。任何關於爲什麼對資源字典的引用在一個解決方案中解決但不是另一個解決方案的建議?謝謝 – user3226682

+0

@ user3226682如果您試圖在兩種完全不同的非內置解決方案之間進行引用,您可以使用StreamReader和XamlReader動態加載外部.xaml文件。另一種解決方案是單獨構建一個包含所需XAML的庫,並以此方式引用它。 – AaronDancer

+0

我真的不建議在兩個單獨的解決方案之間引用。如果每個項目中只有一個項目,並且它們彼此相關,我會將它們合併爲一個項目。如果不是這樣,那麼我會親自將文件複製到每個解決方案,或者在單獨的文本編輯器中進行處理,並且兩種解決方案都只是從外部加載XAML。 – AaronDancer