Ich habe ein SciChartSurface, wo ich das Zoomen unterstützen wie folgt:Wie unterstützt man seitliches Scrollen mit Trackpad/horizontalem Scrollrad?
- Zoom x-Achse auf den regulären Scrollen.
- Zoom y-Achse auf Scrolling +
CTRL
- Pan x-Achse auf Scrolling +
Shift
I auch in der X-Richtung Panning möchte ermöglichen, wenn der Benutzer entweder scrollt horizontal auf einem Trackpad oder verwendet ein horizontales Scrollrad (Daumenrad). Ich bin mir jedoch nicht sicher, wie ich das machen soll.
Hier ist der erweiterte MouseWheelZoomModifier, den ich verwendet habe. Kann ich ihm irgendwie Informationen über mein Scroll-Verhalten senden? Kann ich irgendwie den seitlichen/horizontalen Bildlauf als Shift
+ scroll behandeln? Vielen Dank!
/// <summary>
/// Extended <see cref="MouseWheelZoomModifier"/> which modifies zoom
/// behavior based on modifier keys so that scrolling while holding CTRL
/// zooms vertically and doing so while holding SHIFT pans horizontally.
/// </summary>
class MouseWheelZoomModifierEx : MouseWheelZoomModifier {
public override void OnModifierMouseWheel(ModifierMouseArgs e) {
switch (e.Modifier) {
case MouseModifier.Ctrl:
ActionType = ActionType.Zoom;
XyDirection = XyDirection.YDirection;
break;
case MouseModifier.Shift:
ActionType = ActionType.Pan;
XyDirection = XyDirection.XDirection;
break;
default:
ActionType = ActionType.Zoom;
XyDirection = XyDirection.XDirection;
break;
}
// e.Modifier is set to None so that the base implementation of
// OnModifierMouseWheel doesn't change ActionType and XyDirection again.
e.Modifier = MouseModifier.None;
base.OnModifierMouseWheel(e);
}
}
Vielen Dank für die schnelle und hilfreiche Antwort! Das scheint eine gute Lösung zu sein, aber ich habe festgestellt, dass mein Problem darin besteht, dass das horizontale Maus-Scroll-Ereignis nirgendwo in der Anwendung registriert wird ... Ich muss nur noch etwas recherchieren. Wird diesen Beitrag aktualisieren, wenn ich eine Antwort finde. –
Hallo Paul, in der oben genannten Probe teilte ich uns in Keydown Veranstaltungen, die nicht in der Anwendung abonniert sind. Sie können die gleiche Technik für das horizontale Mausrad verwenden. Mit freundlichen Grüßen, Andrew –
Ich beziehe mich auf den SimpleZoomInOutModifier in diesem KB-Artikel. http://support.scichart.com/index.php?/Knowledgebase/Article/View/17236/32/custom-chartmodifiers---part-2---custom-zoompanmodifier-and-zooming-on-keypress Beachten Sie, wie Wir abonnieren Schlüsselereignisse im übergeordneten Fenster. Sie können das gleiche mit horizontalem Mausrad tun –