コード例 #1
0
            /// <inheritdoc />
            public (Point location, DragDropModifiers modifier) GetState()
            {
                var wpfLocation = _wpfArgs.GetPosition(WpfHost.Current);
                var location    = new Windows.Foundation.Point(wpfLocation.X, wpfLocation.Y);

                var mods = DragDropModifiers.None;

                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.LeftMouseButton))
                {
                    mods |= DragDropModifiers.LeftButton;
                }
                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.MiddleMouseButton))
                {
                    mods |= DragDropModifiers.MiddleButton;
                }
                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.RightMouseButton))
                {
                    mods |= DragDropModifiers.RightButton;
                }

                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.ShiftKey))
                {
                    mods |= DragDropModifiers.Shift;
                }
                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.ControlKey))
                {
                    mods |= DragDropModifiers.Control;
                }
                if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.AltKey))
                {
                    mods |= DragDropModifiers.Alt;
                }

                return(location, mods);
            }
コード例 #2
0
            public (Point location, DragDropModifiers modifier) GetState()
            {
                CGPoint windowLocation = new CGPoint(0.0, 0.0);

                if (_macOSDraggingInfo != null && _window.ContentView is { } contentView)
                {
                    windowLocation = contentView.ConvertPointFromView(_macOSDraggingInfo.DraggingLocation, null);
                }
                var location = new Windows.Foundation.Point(windowLocation.X, windowLocation.Y);

                // macOS requires access to NSEvent.ModifierFlags to determine key press.
                // This isn't available from the dragging info.
                var mods = DragDropModifiers.None;

                return(location, mods);
            }
コード例 #3
0
        public static PointerPoint GetPoint(
            double x,
            double y,
            uint?id  = null,
            ulong?ts = null,
            PointerDeviceType?device          = null,
            bool?isInContact                  = true,
            PointerPointProperties properties = null)
        {
            id = id ?? (uint)Interlocked.Increment(ref _pointerId);
            ts = ts ?? (ulong)id;
            var pointer  = new PointerDevice(device ?? PointerDeviceType.Mouse);
            var location = new Windows.Foundation.Point(x, y);

            properties = properties ?? new PointerPointProperties
            {
                IsPrimary           = true,
                IsInRange           = true,
                IsLeftButtonPressed = true,
            };

            return(new PointerPoint(id.Value, ts.Value, pointer, (uint)pointer.PointerDeviceType, location, location, isInContact.GetValueOrDefault(), properties));
        }