Ich muss ein togglerähnliches Steuerelement erstellen, das einige Aktionen ausführt, wenn die Maus darüber fährt, und eine weitere Aktion ausführt, wenn es die Schaltfläche verlässt, aber nichts tut, während die Maus über und los ist.
Um es klar zu machen, reicht es nicht aus, einfach herauszufinden, ob sich die Maus über einer Region befindet oder nicht, aber es muss nur ein Code ausgeführt werden , wenn die Maus ein- und ausgeht Region. (Klärung beantragt von Szabolcs)
Leider verhält sich die Option AutoAction
von Button
anders: Sie versucht ständig, die Aktion auszuführen, während sich die Maus innerhalb des Objekts bewegt:
Andererseits kann ein einfacher Mouseover
-Befehl keinen Code ausführen, der jedes Mal ausgeführt wird, wenn die Maus das Objekt verlässt:
Ich dachte, dass das zweite Argument von Dynamic
verwendet werden könnte, um Anfangs- und Endaktionen für ein Mouseover
-Objekt zu definieren, hatte aber auch keinen Erfolg mit diesem Ansatz.
Irgendwelche Ideen?
Sie könnten so etwas tun:
%Vor% Dies bedeutet, dass Sie die Region, für die Sie die Einträge registrieren möchten, mit Pane
in eine etwas größere Region umbrechen. Sowohl die innere Region als auch die äußere Region haben eine EvenHandler
, die Bewegungen der Maus registriert. Wenn PassEventsUp->False
für die innere EventHandler
festgelegt wird, werden die "MouseMoved"
-Ereignisse nur dann an die äußere EventHandler
übergeben, wenn sich der Mauszeiger über der äußeren Region, aber nicht über der inneren Region befindet.
Tags und Links user-interface wolfram-mathematica