Mein Problem ist, dass in WPF, wenn ich versuche, die Farbe des Hintergrunds einer Schaltfläche mithilfe von Triggern oder Animationen zu ändern, der Standard-Mouseover-Effekt (grau mit diesem orangefarbenen Schimmer) Priorität zu haben scheint.
Nach umfangreichen Suchen habe ich keine Ahnung, wie ich diesen Effekt entfernen kann.
Dies ähnelt der von Mark Heath genannten Lösung, enthält jedoch nicht so viel Code, um nur eine sehr einfache Schaltfläche zu erstellen, ohne den integrierten Mouse-Over-Animationseffekt. Es behält einen einfachen Mouse-Over-Effekt bei, bei dem der Schaltflächenrand schwarz angezeigt wird.
Der Stil kann beispielsweise (wie gezeigt) in den Abschnitt Window.Resources oder UserControl.Resources eingefügt werden.
quelle
Nur um eine sehr einfache Lösung hinzuzufügen, das war gut genug für mich, und ich denke , es geht um das Problem des OP. Ich habe die Lösung in dieser Antwort verwendet, außer mit einem regulären
Background
Wert anstelle eines Bildes.Kein erneutes Templating, außer das Erzwingen
Background
, dass derTransparent
Hintergrund immer der Template-Button ist - Mouseover wirkt sich nicht mehr auf den Hintergrund aus, sobald dies erledigt ist. Offensichtlich durch einenTransparent
beliebigen Wert ersetzen .quelle
Der Muffin-Mann hatte eine sehr einfache Antwort, die für mich funktionierte.
Um eine etwas spezifischere Richtung hinzuzufügen, zumindest für VS 2013:
... Style="{DynamicResource MouseOverNonDefault}"/>
quelle
Dieser Link hat mir sehr geholfen http://www.codescratcher.com/wpf/remove-default-mouse-over-effect-on-wpf-buttons/
Definieren Sie einen Stil in UserControl.Resources oder Window.Resources
Fügen Sie dann den Stil auf diese Weise zu Ihrer Schaltfläche hinzu. Style = "{StaticResource MyButton}"
quelle
Wenn jemand die Standardsteuerungsvorlage nicht überschreiben möchte, finden Sie hier die Lösung.
Sie können eine DataTemplate for-Schaltfläche erstellen, die TextBlock enthalten kann, und anschließend den Eigenschaftstrigger in die IsMouseOver-Eigenschaft schreiben, um den Mouse-Over-Effekt zu deaktivieren. Die Höhe von TextBlock und Button sollte gleich sein.
quelle
Eine Erweiterung der Antwort von dodgy_coder, die Unterstützung für ..
Fügt Unterstützung für IsSelected und Hover hinzu, dh eine umgeschaltete Schaltfläche
Beispiele ..
<Button Content="Wipe On" Selector.IsSelected="True" /> <Button Content="Wipe Off" Selector.IsSelected="False" />
quelle
Verwenden eines Vorlagenauslösers:
quelle