App.xaml中的ResourceDictionary将无法加载

时间:2014-01-23 22:10:56

标签: c# wpf xaml resourcedictionary

我想要加载一组样式以在整个应用程序中用作StaticResource:Styles.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>

任何人都知道为什么我不能在我的应用资源中包含这个?

2 个答案:

答案 0 :(得分:0)

我会评论你的帖子,但有50个代表要求......

您是否尝试过设置ResourceDictionary的密钥?

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

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