使用KeyPressed检测MouseDown

时间:2017-03-12 20:30:58

标签: xamarin custom-view xamarin.mac

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

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

<compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> </compilers> 事件的NSEvent中,您可以检查MouseDown属性中是否有用户按下的任何修饰符键。

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));
    }