Ich habe Ressourcenwörterbuchdateien (MenuTemplate.xaml, ButtonTemplate.xaml usw.), die ich in mehreren separaten Anwendungen verwenden möchte. Ich könnte sie zu den Assemblys der Anwendungen hinzufügen, aber es ist besser, wenn ich diese Ressourcen in einer einzigen Assembly kompiliere und meine Anwendungen darauf verweisen, oder?
Wie kann ich nach dem Erstellen der Ressourcenassembly in der App.xaml meiner Anwendungen darauf verweisen? Derzeit verwende ich ResourceDictionary.MergedDictionaries, um die einzelnen Wörterbuchdateien zusammenzuführen. Wie kann ich sie in xaml referenzieren, wenn ich sie in einer Assembly habe?
.net
wpf
xaml
controltemplate
resourcedictionary
Gus Cavalcanti
quelle
quelle
Antworten:
Überprüfen Sie die Pack-URI-Syntax . Sie wollen so etwas:
quelle
AppDomain.AssemblyResolve
, um die Assembly zu finden.Ein Beispiel, um dies zu einer 15-Sekunden-Antwort zu machen -
Angenommen, Sie haben "styles.xaml" in einer WPF-Bibliothek mit dem Namen "common" und möchten diese aus Ihrem Hauptanwendungsprojekt verwenden:
Prost
quelle
Ich arbeite mit .NET 4.5 und konnte dies nicht zum Laufen bringen ... Ich habe die benutzerdefinierte WPF-Steuerungsbibliothek verwendet. Das hat am Ende bei mir funktioniert ...
Quelle: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
quelle
Nur-Ressourcen-DLL ist eine Option für Sie. Dies ist jedoch nicht unbedingt erforderlich, es sei denn, Sie möchten Ressourcen ändern, ohne Anwendungen neu zu kompilieren. Nur eine gemeinsame ResourceDictionary-Datei ist ebenfalls eine Option. Es hängt davon ab, wie oft Sie Ressourcen usw. ändern.
MyAssembly - Nur Baugruppenname ohne Erweiterung
FolderStructureInAssembly - Wenn sich Ihre Ressourcen in einer Folde befinden, geben Sie die Ordnerstruktur an
Wenn Sie dies tun, ist es besser, auch siteOfOrigin zu kennen.
quelle
Für UWP:
quelle
Verwenden von XAML:
Wenn Sie die andere
assembly
Struktur kennen und denresources
in c # -Code möchten , verwenden Sie den folgenden Code:Ausgabe: Wenn wir
ResourceDictionary
RD1.xaml
ProjectWpfControlLibrary1
in Project verwenden möchtenStackOverflowApp
.Struktur der Projekte :
Ressourcenwörterbuch:
Code-Ausgabe:
PS: Alle
ResourceDictionary
Dateien solltenBuild Action
'Resource
' oder 'Page
' haben.Verwenden von C #:
quelle