2014-01-23 27 views
0

我有一組我想要加載在整個應用的過程中靜態資源使用方式:Styles.xaml的ResourceDictionary在App.xaml中不會加載

一切工作正常,如果我有在每個窗口的樣式或頁面:

<Window x:Class="MainWindow" 
    <Window.Resources>   
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Resources/Styles.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary>   
    </Window.Resources> 
</Window> 

如果我嘗試包括在我的應用程序資源的風格,它拋出一個錯誤,它無法找到MainWindow.xaml資源。

<Application x:Class="App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Resources/Styles.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

任何人都知道爲什麼我不能在我的應用程序資源中包含此信息?

+0

你可以嘗試重新啓動Visual Studio,我有類似的問題。 – electricalbah

+0

@electricalbah重新啓動很多次。我遇到過與VS2013設計師不一致的WPF問題,我認爲這是相關的。 – David

+0

我在VS2015中遇到了幾乎相同的問題... – uetoyo

回答

0

我不知道爲什麼MergedDictionary不工作,但如果我添加的樣式作爲一個獨立的資源,它工作正常。

<Application x:Class="App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:Excavator" 
     StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary Source="Resources/Styles.xaml" />   
    </Application.Resources> 
</Application> 
0

我將在您的文章發表評論,但有一個50代表要求...

你有沒有嘗試設置爲ResourceDictionary中的關鍵?

 <ResourceDictionary x:Key="Styles" Source="Resources/Styles.xaml" /> 
+0

我嘗試過,但對於任何名稱空間組合(x:Key,xmlns:Key等),我得到「屬性鍵不存在於XML名稱空間中」。 – David

+0

澄清:Styles.xaml中的所有單獨樣式都有一個鍵。我不認爲ResourceDictionary聲明需要一個鍵。 – David

相關問題