Ich möchte den Umschaltstatus der Umschalttaste in wpf anpassen. Ich möchte ein Bild auf die Umschaltfläche einstellen, wenn es eingeschaltet ist, und ein anderes Bild einstellen, wenn es ausgeschaltet ist. Um dies zu tun, dachte ich an Trigger. So habe ich es gemacht,
%Vor%Das obige Snippet scheint nur für zwei Elemente in der Listbox zu funktionieren. Wenn mehr als ein Element den Binding-Wert hat, Status auf True, funktioniert es nicht (es funktioniert nur für ein solches Element). Bitte sagen Sie mir, ob ich in die richtige Richtung gehe. Erzählen Sie mir auch andere Möglichkeiten, dies zu erreichen.
Das Problem liegt darin, dass Sie Image
resources verwenden. Das Image
in Ihren Ressourcen ist eine konkrete Instanz eines Steuerelements. Es kann immer nur an einem Ort sein. Also, wenn Sie mehr als ein Element in Ihrer Liste haben ...
Dies sollte für Sie funktionieren:
%Vor% Beachten Sie, dass Sie die Leistung verbessern können, indem Sie für jede Bilddatei in Ihren Ressourcen ImageSource
verwenden und dann in Image
darauf verweisen. Dies bedeutet effektiv, dass jedes Bild nur einmal von der Festplatte geladen wird, anstatt 2 * N-mal (wobei N die Anzahl der Elemente in Ihrer Liste ist).
Diese Antwort wird dir helfen. Dort habe ich einen ToggleButton genommen und ihn als ToggleButton in einem TreeView gestaltet (der + / - Teil zum Erweitern von Collapse Nodes). Sie müssen nur die Pfade ändern, die die Zeichen - und + zeichnen, um stattdessen Ihre Bilder anzuzeigen.
Hier geht es personalisiert zu Ihnen, legen Sie einfach ein Bild namens "on.jpg" und ein anderes namens "off.jpg" unter Ihrem C: \ Verzeichnis, und es sollte nur durch Kopieren / Einfügen in Ihr Fenster funktionieren:
%Vor%Hier ist ein ToggleButton mit 3 Bildern und einem Popup:
Die Bilder werden als BitmapImage in Ressourcen gespeichert, um zu vermeiden, dass sich die Darstellung auf Triggern ändert.
Die Bilddateien müssen zu den Ressourcen hinzugefügt werden, und dann müssen die Dateien, die dem Ordner "Resoruces" im Projekt hinzugefügt wurden, als BuildAction = Ressource markiert werden.
Wenn das ToggleButton IsEnabled = false ist, wird auch eine Opazität auf das Image-Steuerelement angewendet.
Code:
%Vor%Einfach, ich habe die Trigger in die Datenvorlage verschoben. Weiß nicht, ob das die richtige Antwort ist. Scheint zu arbeiten
Tags und Links wpf c# controls togglebutton