示例#1
0
        private void WidgetMouseWheelHandler(object sender, MouseWheelEventArgs e)
        {
            mouseScrollCumulation += e.Delta;
            int jumps = mouseScrollCumulation / 120;

            mouseScrollCumulation %= 120;
            var p = e.GetPosition(Widget);

            Context.InvokeUserCode(delegate {
                for (int i = 0; i < jumps; i++)
                {
                    var a = new MouseScrolledEventArgs(e.Timestamp, p.X, p.Y, ScrollDirection.Up);
                    eventSink.OnMouseScrolled(a);
                    if (a.Handled)
                    {
                        e.Handled = true;
                    }
                }
                for (int i = 0; i > jumps; i--)
                {
                    var a = new MouseScrolledEventArgs(e.Timestamp, p.X, p.Y, ScrollDirection.Down);
                    eventSink.OnMouseScrolled(a);
                    if (a.Handled)
                    {
                        e.Handled = true;
                    }
                }
            });
        }
示例#2
0
        private void WidgetMouseWheelHandler(object sender, MouseWheelEventArgs e)
        {
            mouseScrollCumulation += e.Delta;
            int jumps = mouseScrollCumulation / 120;

            mouseScrollCumulation %= 120;
            var p = e.GetPosition(Widget);

            Toolkit.Invoke(delegate {
                for (int i = 0; i < jumps; i++)
                {
                    eventSink.OnMouseScrolled(new MouseScrolledEventArgs(
                                                  e.Timestamp, p.X * WidthPixelRatio, p.Y * HeightPixelRatio, ScrollDirection.Up));
                }
                for (int i = 0; i > jumps; i--)
                {
                    eventSink.OnMouseScrolled(new MouseScrolledEventArgs(
                                                  e.Timestamp, p.X * WidthPixelRatio, p.Y * HeightPixelRatio, ScrollDirection.Down));
                }
            });
        }