ResourceDictionary in eine separate assembly
Habe ich Ressourcen-Wörterbuch-Dateien (MenuTemplate.xaml, ButtonTemplate.xaml, etc.), dass ich verwenden möchten, die in mehreren separaten Anwendungen. Ich könnte hinzufügen, um die Anwendungen Baugruppen, aber es ist besser, wenn ich diese kompilieren von Ressourcen in eine einzige Versammlung und habe meine Anwendungen verweisen, richtig?
Nachdem die Ressource-assembly gebaut wird, wie kann ich den Verweis in der App.xaml-Anwendungen? Derzeit nutze ich ResourceDictionary.MergedDictionaries zum Zusammenführen der einzelnen dictionary-Dateien. Wenn ich Sie in einer Baugruppe, wie kann ich verweisen Sie im xaml?
Dies kann ein overkill, aber möchten Sie vielleicht bereiten Sie Ihre Ressourcen für den Export mit der Technik hier beschrieben: alexfeinberg.wordpress.com/2015/08/16/.... Die wichtigsten Vorteile, dies zu tun ist, um zu verhindern, dass Probleme mit verschiedenen Versionen der Ressource, die Montage immer geladen in derselben Anwendungsdomäne.
InformationsquelleAutor Gus Cavalcanti | 2008-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Check-out die pack-URI-syntax. Sie wollen so etwas wie dieses:
Spock: dann wird die CLR nicht finden, es ohne Hilfe (nichts speziell zu tun mit WPF). Entweder fügen Sie Sondieren Pfade zu Ihrem app.config, oder Anhängen, um
AppDomain.AssemblyResolve
zu helfen, Sie finden die assembly.Muss ich hinzufügen, Sondieren Pfad, wenn YourAssembly Projekt ist auf der gleichen Ebene wie die Anwendung-Projekt, das auf Sie verweisen müssen YourAssembly? Zum Beispiel, C:\Solution\AppProject\ und C:\Solution\YourAssemblyProject\
dies ist eine separate Frage, so öffnen Sie bitte ein.
Diese Antwort macht keinen Sinn. Um ihm zu Folgen braucht man schon, um zu wissen, wie es zu tun!
InformationsquelleAutor Kent Boogaart
Ein Beispiel, nur um diese eine 15-Sekunden-Antwort -
Sagen, Sie haben "Stile.xaml" in einer WPF-Bibliothek unter dem Namen "common", und Sie es benutzen wollen, von Ihrem Haupt-Anwendung-Projekt:
Cheers
Wollte nur hinzufügen, dass wenn Sie auf der ResourceDictionary von UserControl, dann müssen Sie einen Verweis auf die assembly in beiden Orten: in der UserControl-und im Hauptfenster Projekt. Andernfalls bekommen Sie den runtime error.
InformationsquelleAutor Hertzel Guinness
Arbeite ich mit .NET 4.5 und konnte nicht damit es funktioniert... ich war mit WPF Custom Control Library. Dies war für mich am Ende...
Quelle: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
InformationsquelleAutor Aleksandar Toplek
Ressourcen-DLL ist eine option für Sie. Aber es ist nicht unbedingt erforderlich, es sei denn, Sie möchten, ändern Sie Ressourcen, ohne die Anwendungen neu zu kompilieren. Haben nur eine gemeinsame ResourceDictionary-Datei ist auch eine option. Es hängt davon ab, wie oft Sie ändern, Ressourcen und etc.
MyAssembly - Einfach Montage-name ohne Erweiterung
FolderStructureInAssembly - Wenn Sie Ihre Ressourcen sind in einer folde, geben Sie Ordner-Struktur
Wenn Sie dies tun, ist es besser, bewusst siteOfOrigin als gut.
InformationsquelleAutor CharithJ
Für UWP:
InformationsquelleAutor Gianluca Demarinis
Die Verwendung von XAML:
Wenn Sie wissen, die andere
assembly
Struktur und wollen dieresources
im c# code, dann folgenden code verwenden:Ausgabe: Wenn wir wollen
ResourceDictionary
RD1.xaml
ProjektWpfControlLibrary1
inStackOverflowApp
Projekt.Struktur der Projekte:
Resource Dictionary:
- Code-Ausgang:
PS: Alle
ResourceDictionary
Dateien solltenBuild Action
als 'Resource
' oder 'Page
'.Mit C#:
InformationsquelleAutor Kylo Ren