WPF-Styles-Taste, MouseOver-Frage
Ich versuche, eine einfache mouseover-Effekt auf eine Schaltfläche, verändert die Farbe, wenn Maus vorbei ist, aber die Farbe ist sofort geändert, um die Standard-Schaltfläche hintergrund... wie kann ich dieses Verhalten außer Kraft setzen?
dies ist mein code:
Style myBtnStyle = new Style();
Trigger bla = new Trigger() { Property = IsMouseOverProperty, Value = true };
bla.Setters.Add(new Setter(Control.BackgroundProperty, Brushes.Black));
myBtnStyle.Triggers.Add(bla);
button2.Style = myBtnStyle;
InformationsquelleAutor Luiscencio | 2010-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut dieser Beitrag, die schicke animation integriert ist und entfernen Sie es, Sie gehen zu müssen, um das überschreiben der
ControlTemplate
für IhreButton
. Zum Glück, dass ist nicht allzu schwer. Ich verwendet dieser Beitrag als source-material und kam mit der folgendenStyle
dass Ihnen die Idee.Update:
Wenn du tot bist Satz auf die Anwendung der
Style
im code, und Sie nicht wollen, zu einemResourceDictionary
(wahrscheinlich der bessere Weg, es zu tun), können Sie laden Sie dieStyle
dynamisch, mitXamlReader.Load
:Könnte man den Stil in einem resource dictionary und dann ziehen Sie es heraus, wenn Sie notwendig ist, um an Ihrem Knopf.
+1 ich werde versuchen, das update, es sieht vielversprechend aus, vielen Dank
Wenn der Stil Löst sich auf "IsMouseOver", der zuvor definierten Taste.Hintergrund.ImageBrush verschwindet, obwohl die einzige Art, die in der Trigger ist für die Deckkraft ein. Irgendwelche Vorschläge, was ich bin fehlt? Dank
InformationsquelleAutor Joseph Sturtevant
Überschreiben der ButtonChrome Thema wäre einfacher.
Erstellen Sie eine Vorlage und entfernen Sie die RenderMouseOver="{TemplateBinding IsMouseOver}"
Und fügen Sie dann Ihre eigene Umgang mit mouseover
Das sollte es lösen! 🙂
xmlns:themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
und Verweis HinzufügenPresentationFramework.Aero
zu Projekt.InformationsquelleAutor Kman