在我的WPF应用程序中,我必须确定在MouseDown
和MouseMove
事件(即调整大小操作)中是否按下了“ Esc”键。
我在MouseMove
事件中尝试了以下代码:
isEscapePressed = Keyboard.IsKeyDown(Key.Escape);
但是isEscapePressed
为真,仅当“ Esc”键仍处于保持状态时。否则为假。
我也尝试过使用OnKeyDown
和OnPreviewKeyDown
事件。但是当鼠标左键处于按下状态时不会触发这些。
在我的应用中,我正在使用Border内部的ContentControl
,并使用Border的MouseMove
和MouseLeftButtonDown
事件来调整大小。
<Border>
<ContentControl></ContentControl>
</Border>
请对此情况提供任何想法。
也许您可以使用以下内容:
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
}