1

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

1 に答える 1

1

ああああ!問題が解決しました!それ自体はバグではありませんが、Parallels が原因であり、明示的に有効にする必要があります。

具体的には、キーボードの設定を「ゲーム向けに最適化」に変更する必要があります。これにより、重要な通知メッセージをより詳細に表示するよう Parallels に指示します。

より有益なものではなく「ゲームの最適化」と呼ぶことにした理由、または少なくともその機能が何をするかをよりよく説明することにした理由は、私にはわかりません. 数日間のテストと回避策の試行に続いて、Parallels に提出されたバグレポートが、設定で制御可能であることがわかりました。これはソフトウェア アーキテクトの私からです。非技術者がここで何を経験するか想像さえできません。Parallels側の本当に悪い電話です。

ここに画像の説明を入力

于 2015-10-13T17:37:25.860 に答える