想知道是否有其他人遇到此问题。在El Capitan上使用Parallels 11中的Windows 10 VM时,如果您在鼠标事件中按下鼠标键,则无法检查修改键。
我观察鼠标当前是否已关闭,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);
}