Referenzierung eines Elternteils ResourceDictionary in einem UserControl
Habe ich eine Bibliothek von WPF-Benutzersteuerelemente und einem ResourceDictionary, die gemeinsam in der Bibliothek.
Alle Benutzersteuerelemente in dieser Bibliothek erscheinen nur in einer einzigen 'shell' übergeordneten Steuerung, die eigentlich nur ein container für eine Sammlung von kleineren Steuerungen. Ich bin in der Lage, Zugriff auf das ResourceDictionary von meiner shell-Steuerelement wie erwartet, wenn ich, fügen Sie folgenden XAML -
<Control.Resources>
<ResourceDictionary Source="MyResources.xaml" />
</Control.Resources>
Aber ich kann nicht auf die ResourceDictionary vom Kind kontrolliert, die sitzen in der 'shell' - Kontrolle.
War ich unter dem Eindruck, dass die WPF sollten überprüfen Sie vor Ort, um Ressourcen und dann die traverse nach oben, bis die entsprechenden Ressourcen zu finden sind?
Stattdessen bin ich immer
Cannot find resource named '{BoolInverterConverter}'.
Resource names are case sensitive. Error at
object 'System.Windows.Data.Binding' in markup file...
Natürlich kann ich (und bin) verweisen auf die ResourceDictionary in mein Kind kontrolliert; aber jede und jeder Kontrolle muss nun verweisen Sie in diesem Wörterbuch, und ich glaubte, dass dies nicht notwendig war.
Irgendwelche Ideen, mache ich etwas seltsam oder ist meine Erwartungshaltung falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Los ist beschrieben hier, obwohl die Dokumentation ist ein wenig undurchsichtig. Wenn Sie fügen Sie eine
ResourceDictionary
zu einem elementResources
Eigenschaft ohne Angabe eines Schlüssel, WPF erwartet, dass Sie die Verschmelzung von resource dictionaries, und es füllt das Wörterbuch mit dem Inhalt der Wörterbücher in IhrerMergedDictionaries
Eigenschaft. Es ignoriert die tatsächlichen Inhalte derResourceDictionary
ohne Schlüssel.Also, was Sie tun möchten, ist dieser:
Edit:
Einem Beispiel arbeiten:
MainWindow.xaml:
Dictionary1.xaml:
UserControl1.xaml:
Cannot find resource...
Ergebnis wie bei meinem original XAML. Ich experimentiere mit Schlüssel aber nicht finden, kein Erfolg. Welcher Teil der Dokumentation link beschrieben, was passiert ist - ich Las es, und während es relevant ist, um ResourceDictionaries ich nicht alles sehen, insbesondere, ob oder ob nicht Ressourcen sind in einer Hierarchie von Kontrollen.StaticResource
markup-Erweiterung? Denn das wird nicht funktionieren.DynamicResource
wird.