public void CommandExecuted(MouseButton button) { MouseButtonState state = GetState(button); if (state != null) { state.CommandExecuted = true; } }
public void SetPress(MouseButton button) { MouseButtonState state = GetState(button); if (state != null) { state.SetPress(); } }
// マウスボタン離した時 private void MainWindow_MouseUp(object sender, MouseButtonEventArgs e) { // メニューが開いているなら無効 if (MainWindow.Current.IsAnyToolbarMenuOpened) { return; } // マウスジェスチャ入力中 if (mouseGesture != null && mouseGesture.IsActive) { return; } Debug.WriteLine("mouse up : " + e.ChangedButton.ToString()); // 長押しクリック判定解除 StopLongClick(); // マウスクリックの状態取得 MouseButtonState mouseButtonState = mouseButtonStateSet.GetState(e.ChangedButton); // マウスインプット生成 MouseInputButton mouseInputButton = MouseInput.MouseButtonToMouseInputButton(e.ChangedButton); // 取得失敗 if (mouseButtonState == null) { return; } if (mouseInputButton == MouseInputButton.None) { return; } // 既に他の入力でコマンド実行済み if (mouseButtonState.CommandExecuted) { //e.Handled = true; } // マウスクリックコマンド実行 else if (mouseButtonState.IsPressed) { MouseInput mouseInput = new MouseInput(mouseInputButton, Keyboard.Modifiers); if (DispatchMouseInput(mouseInput)) { e.Handled = true; } } // 押下状態更新 mouseButtonState.IsPressed = false; }