[英]Why don't modifier keys' state change as expected during mouse move operations?
想知道是否还有其他人遇到这个问题。 在El Capitan上的Parallels 11中使用Windows 10 VM时,如果您在按下鼠标键的Mouse事件中似乎无法检查修改键。
我正在观察鼠标当前是否处于按下状态,Parallels仅在鼠标按钮或其他非修改器键盘键更改状态(或释放其他修改器键,但未按下时)时发送/存储修改器键更改。
所以...有人知道如何解决这个问题吗? 我们绝对希望支持Parallels。 (我也已经向他们提交了一个错误,因为这肯定是错误的。)
这是代码。 只需创建一个新项目并将其粘贴到主窗口的代码中即可。
bool isDragging;
protected override void OnMouseDown(MouseButtonEventArgs e)
{
if(e.ClickCount == 1 && e.ChangedButton == MouseButton.Left)
{
e.Handled = true;
isDragging = true;
CaptureMouse();
}
base.OnMouseDown(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
if(isDragging)
{
e.Handled = true;
Title = "Pressed: " + (Keyboard.Modifiers == ModifierKeys.Shift);
}
base.OnMouseMove(e);
}
protected override void OnMouseUp(MouseButtonEventArgs e)
{
if(isDragging && e.ChangedButton == MouseButton.Left)
{
e.Handled = true;
isDragging = false;
ReleaseMouseCapture();
}
base.OnMouseUp(e);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.