Probleme beim Verweisen auf ein Ressourcenwörterbuch, das ein zusammengeführtes Wörterbuch enthält

Ich habe eine Bibliothek, CommonLibraryWpfThemes, mit mehreren Resource Dictionary XAML-Dateien. Die Datei My Themes / Generic.xml enthält eine ResourceDictionary.MergedDictionaries-Deklaration, mit der alle anderen Dateien zusammengeführt werden.

Generic.xaml

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/BrushDictionary.xaml" />
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/TextBlockDictionary.xaml" />
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/LabelDictionary.xaml" />
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/ButtonDictionary.xaml" />
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

In meinem Anwendungsprojekt verweise ich auf CommonLibraryWpfThemes und in meiner App.xaml-Datei explizit auf Generic.xml.

App.xaml - FAILS

<Application
    x:Class="MyApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary
            Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml" />
    </Application.Resources>
</Application>

Das geht nicht. Beim Ausführen meiner App wird folgende Fehlermeldung angezeigt:

System.Windows.Markup.XamlParseException occurred
  Message="Cannot find resource named '{_fadedOrangeBrush}'. Resource names are case sensitive.  Error at object 'System.Windows.Setter' in markup file 'CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml' Line 18 Position 13."
  Source="PresentationFramework"
  LineNumber=18
  LinePosition=13

Wenn ich den Inhalt von Generic.xaml direkt in App.xaml platziere, funktioniert alles einwandfrei:

App.xaml - ERFOLGREICH

<Application
    x:Class="MyApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/BrushDictionary.xaml" />
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/TextBlockDictionary.xaml" />
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/LabelDictionary.xaml" />
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/ButtonDictionary.xaml" />
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

Vielleicht gehe ich das falsch an. Mein Ziel ist es, es einfach zu machen, alle meine Themenressourcen aus mehreren Anwendungen zu referenzieren, ohne alle einzelnen Dateien auflisten zu müssen. Gibt es eine empfohlene Möglichkeit, dies zu tun? (Hinweis: Ich versuche nicht, zwischen mehreren Themen zu wechseln. Ich habe nur ein Thema.)

Als Bonus wäre es schön, wenn mir jemand sagen könnte, wie man auf Ressourcen in einer externen Bibliothek verweist, ohne den Designer in Visual Studio zu beschädigen.

Vielen Dank.

BEARBEITEN:

Ich habe versucht, das ResourceDictionary in ein ResourceDictionary.MergedDictionary-Element zu packen, aber das hat auch nicht funktioniert (ich bekomme den gleichen Fehler):

<Application
    x:Class="MyApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary
                    Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

Antworten auf die Frage(5)

Ihre Antwort auf die Frage