Ich habe eine Windows Forms-Anwendung, die zur Laufzeit ein WPF-Steuerelement hosten muss. Ich habe das grundlegende Hosting und die Interaktion abgeschlossen (mit einem ElementHost-Steuerelement) und alles funktioniert gut, bis ich versuche, etwas zu tun, das das WPF-Steuerelement benötigt, um einige benutzerdefinierte Ressourcenwörterbücher zu verwenden, die definiert sind. (Die WPF-Steuerelement und alle seine Ressourcen Wörterbücher alle in der gleichen WPF Control Library DLL definiert sind.)Laden/Verwenden von Ressourcenwörterbüchern aus einem von WinForms gehosteten WPF-Steuerelement
Sobald das passiert, ich ein paar Fehler erhalten, die wie folgt aussehen:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='DocumentHeaderInterestStyle'
Ich habe eine gefunden (Link scheint wegen der Archivierung, thiskönnte derselbe Artikel sein, der ursprünglich referenziert wurde). das spricht zwar darüber, aber es sieht so aus, als ob der Artikel sich mehr der WPF-Seite nähert, aber ich möchte nicht wirklich Änderungen an der WPF-Steuerung vornehmen müssen, da alles in einer eigenständigen WPF-Anwendung läuft.
Wenn der einzige Weg dies zu tun ist, Änderungen auf der WPF-Seite vorzunehmen, kann ich diese Änderungen vornehmen (ich bin nicht verantwortlich für die WPF-Steuerbibliothek, aber die Person, die auch für die gleiche Firma arbeitet, so ist es kein Problem, außer dass ich seine Zeit habe, die Änderungen vorzunehmen.) Aber ich hoffe auf etwas, was ich auf der WinForms-Seite tun kann, damit das funktioniert.
Die WPF-Control-Bibliothek hat ein Dateiressourcenverzeichnis namens „Default.xaml“ definierte im Projekt mit den folgenden Eigenschaften:
Build Action: Seite kopiert Ausgabeverzeichnis: Kopieren Sie nicht Custom Tool: MSBuild Kompilieren
die Stand-alone-WPF-Anwendung hat der folgende Eintrag in seiner App.xaml Datei:
<ResourceDictionary x:Uid="ResourceDictionary_1">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Uid="ResourceDictionary_2" Source="/SmartClient.Infrastructure;component/Themes\Default.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
es ist wie die Steuer Bibliothek scheint sollte schon wissen, wie t o seine Ressourcen bekommen. Die Verwendung von Resources.MergedDictionaries.Add() scheint zu funktionieren, aber wo bekomme ich die Instanz des vorhandenen Wörterbuchs?
Wo würde der „Schlüssel“ und „Wert“ kommen aus für den Anruf hinzufügen? –
Das macht mehr Sinn, aber sollten die Wörterbücher nicht schon zusammengeführt werden? Ich habe meine Frage mit einigen weiteren Informationen zur WPF-Seite aktualisiert. –
Sie sind gerockt, es hat magisch funktioniert. Du hast wirklich meine Zeit gerettet. –