Ich habe die Ressourcenwörterbuchdateien in einem bestimmten Projekt, und überall, wo ich sie referenzieren muss, füge ich sie mit der URI-Syntax "pack" zusammen. So in einer Benutzersteuerung, zum Beispiel: -
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/buttonstyles.xaml" />
<ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/fonts.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Any "local" user control styles go here -->
</ResourceDictionary>
</UserControl.Resources>
Die "Pack" Syntax nimmt diese Form: -
Pack: // Anwendung: ,,,/[assembly name]; Komponente/[Ressourcenpfad & Dateiname] „
im obigen Beispiel‚SomeApplication.Common.UI‘ist der Name meines Projekts/Montage, wo die Ressourcendateien gefunden werden können, die Dateien in einem Projekt-Unterordner befinden namens“ \ Themes \ Metro ". Das Projekt mit Ihren Benutzersteuerelementen wird offensichtlich benötigt um das Projekt/die Assembly mit den Ressourcen zu referenzieren!
Sie müssen auch nicht in den einzelnen Ressourcen-Dateien zusammenführen, damit die Dinge funktionieren. Die Anwendung wird immer noch kompiliert und ausgeführt, es ist nur so, dass Sie im XAML-Editor unter den Stilnamen verschnörkelt werden, da Visual Studio (oder Resharper ?!) sie zur Entwurfszeit nicht auflösen kann.