Muss ich beim Überschreiben von WPF-Vorlagen die Vorlagen jedes Themas separat überschreiben?

Ich muss einen sehr kleinen Teil der WPF ComboBox-Vorlage ändern.

Wenn ich eine Kopie der vorhandenen Vorlage für das Luna-Thema nehme und die Änderung vornehme, funktioniert zunächst alles einwandfrei. Aber wenn der Benutzer ein anderes Thema hat, meineComboBox behält sein benutzerdefiniertes Thema bei (das offensichtlich auf Luna basiert), sieht also fehl am Platz aus.

Gibt es eine Möglichkeit, nur Teile einer Vorlage zu überschreiben, sodass der Großteil der Vorlage weiterhin das Windows-Thema berücksichtigt?

Ich stelle fest, dass Teile der Vorlage einen MWT-Namespace mit einem expliziten Verweis auf Luna definieren:

xmlns:mwt="...blah blah...=PresentationFramework.Luna"

Vielleicht gibt es eine Möglichkeit, diesen mwt-Namespace auf das aktuelle Thema und nicht speziell auf das Luna-Thema zu verweisen.

Oder muss ich für jedes Thema eine benutzerdefinierte Kopie der Vorlage bereitstellen? Und was passiert, wenn MS ein neues Thema erstellt? Muss ich dann meine Vorlage aktualisieren, um dies zu unterstützen?

(Das, was ich ändere, bezieht sich nur auf dasTextBlock wird angezeigt, wenn das Kombinationsfeld geschlossen ist. Ich ändere weder die Dropdown-Liste noch die Schaltfläche. Idealerweise würde ich das einfach überschreibenSelectionBoxItemTemplate auf derComboBox, aber dies ist nur lesbar, so weit ich das beurteilen kann, muss ich die gesamte Steuerelementvorlage überschreiben, um Änderungen vorzunehmen.)

[Verwandte Frage, aber keine Antworten:Passen Sie eine Steuerungsvorlage an und respektieren Sie trotzdem das Thema des Betriebssystems?]

Antworten auf die Frage(1)

Ihre Antwort auf die Frage