查找在调整大小的操作中是否按Esc键(MouseLeftButtonDown + MouseMove)

问题描述 投票:0回答:1

在我的WPF应用程序中,我必须确定在MouseDownMouseMove事件(即调整大小操作)中是否按下了“ Esc”键。

我在MouseMove事件中尝试了以下代码:

isEscapePressed = Keyboard.IsKeyDown(Key.Escape);

但是isEscapePressed为真,仅当“ Esc”键仍处于保持状态时。否则为假。

我也尝试过使用OnKeyDownOnPreviewKeyDown事件。但是当鼠标左键处于按下状态时不会触发这些。

在我的应用中,我正在使用Border内部的ContentControl,并使用Border的MouseMoveMouseLeftButtonDown事件来调整大小。

<Border>
   <ContentControl></ContentControl>
</Border>

请对此情况提供任何想法。

c# wpf keyboard mouseevent wpf-controls
1个回答
0
投票

也许您可以使用以下内容:

  private bool _isEscapePressed = false;
  private void MouseMoveEventHandler(object sender, System.Windows.Input.MouseEventArgs e)
  {

     if (!_isEscapePressed && Keyboard.IsKeyDown(Key.Escape))
     {
        _isEscapePressed = true;

        // Code for Esc pressed down

     }
     else if (_isEscapePressed && !Keyboard.IsKeyDown(Key.Escape))
     {
        _isEscapePressed = false;

        // Code for Esc released

     }

     // Mouse move code

  }
© www.soinside.com 2019 - 2024. All rights reserved.