【问题标题】:Detect MouseDown with KeyPressed使用 KeyPressed 检测 MouseDown
【发布时间】:2017-03-12 20:30:57
【问题描述】:

有没有一种方法可以检测 Xamarin.mac 应用程序中的任何鼠标事件(如 MouseDown)上是否有像 Shift 这样的键?我已经将一些自定义视图加载到 StackView 中,这些视图都应该是可选的。选择单个视图没有问题,但我想选择多个视图,例如使用 Shift、Command 等的标准选择模式。

感谢您的帮助

【问题讨论】:

    标签: xamarin custom-view xamarin.mac


    【解决方案1】:

    在您的MouseDown 事件的NSEvent 中,您可以检查ModifierFlags 属性是否存在用户按下的任何修饰符 键。

        public override void MouseDown(NSEvent theEvent)
        {
            base.MouseDown(theEvent);
            // Report true if the user is holding the CMD down while performing a mouse down
            Console.WriteLine(theEvent.ModifierFlags.HasFlag(NSEventModifierMask.CommandKeyMask));
        }
    

    您可以检查的修饰键:

    public enum NSEventModifierMask : ulong
    {
        AlphaShiftKeyMask = 65536uL,
        ShiftKeyMask = 131072uL,
        ControlKeyMask = 262144uL,
        AlternateKeyMask = 524288uL,
        CommandKeyMask = 1048576uL,
        NumericPadKeyMask = 2097152uL,
        HelpKeyMask = 4194304uL,
        FunctionKeyMask = 8388608uL,
        DeviceIndependentModifierFlagsMask = 4294901760uL
    }
    

    【讨论】:

    • 这正是我想要的,非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多