예제 #1
0
        public void CommandExecuted(MouseButton button)
        {
            MouseButtonState state = GetState(button);

            if (state != null)
            {
                state.CommandExecuted = true;
            }
        }
예제 #2
0
        public void SetPress(MouseButton button)
        {
            MouseButtonState state = GetState(button);

            if (state != null)
            {
                state.SetPress();
            }
        }
예제 #3
0
        // マウスボタン離した時
        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;
        }