他の誰かがこの問題を抱えているかどうか疑問に思っています。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);
}