Frage

Ich mag ein ToggleButton definieren, die mit rotem Vordergrund (zum Beispiel) erscheint, wenn geprüft, anstatt die Standarddarstellung einer gedrückten Taste.

Ich sehe, dass die visuellen Zustände als benannte Elemente innerhalb des ToggleButton des ControlTemplate gehalten werden.

Was ist der einfachste Weg zu ersetzen / entfernen / anpassen einen visuellen Zustand, ohne die gesamte Vorlage neu zu definieren?

War es hilfreich?

Lösung

Ich weiß, das ist sehr spät, aber ich lief nur in das gleiche Problem und dachte, die Lösung selbst heraus, so hoffentlich wird dies für jemanden nützlich sein.

Nach der Vorlage auf ein Steuerelement angewendet wurde (nach der ersten Maßnahme / Anzeigezyklus), können Sie die instanziiert Vorlage zugreifen und seine untergeordneten Komponenten einfach durch VisualTreeHelper.GetChild (myToggleButton, 0) mit - das wird wieder das Root-Objekt der visuellen Struktur der instanziierten Vorlage, aus dem Sie hinzufügen / entfernen / ändern, um die untergeordneten Objekten in ihrer Kinder-Sammlung.

Offensichtlich sind Sie nur den visuellen Zustand zu ändern , die Instanz der Kontrolle, nicht die Vorlage Ressource selbst, so neue Steuerelemente aus derselben Vorlage erstellt wird noch das ursprüngliche Erscheinungsbild hat.

Meine realted Frage zu diesem Thema finden Sie hier: Wie ersetze ich einen Control Teil zur Laufzeit, in Silverlight 3

Andere Tipps

Haben Sie versucht, Ihre eigenen ControlTemplate erstellen und stellen Sie den BasedOn Parameter auf Standard und dann nur geändert, was Sie brauchen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top