Jim*_*mmy 3 c# wpf mouseevent keyboard-events
所以我有一个 WPF 窗口来捕获图像上的鼠标事件。我通过以下代码执行此操作:
<Image Name="imgPrimaryImage" Width="512" Height="512" RenderOptions.BitmapScalingMode="NearestNeighbor" Margin="5"
Source="{Binding Path=ImageMgr.ImageSource}"
MouseLeftButtonDown="OnMouseLeftButtonDown"
MouseMove="OnMouseMove"
MouseLeftButtonUp="OnMouseLeftButtonUp"/>
Run Code Online (Sandbox Code Playgroud)
应用程序功能:当用户左右移动鼠标时,只要按下鼠标左键,就会改变图像的大小。
问题: 在捕获鼠标移动事件的同时是否也可以捕获键盘事件。
最终结果: 我希望能够根据按下的 CTRL 和 SHIFT 来更改鼠标速度。我有更改鼠标速度所需的代码,我只是想知道如何获得它,以便如果用户在按住 CTRL 的同时左键单击并拖动图像,它会改变速度。
如果有人对此有任何见解(即文章、文献或建议),那就太好了。谢谢您,如果需要任何其他信息,请告诉我。
总结一下,如果您想检查键盘按键的状态,您可以使用Keyboard提供IsKeyDown方法的类
var isShift = Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift);
var isCtrl = Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl);
var isAlt = Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt);
Run Code Online (Sandbox Code Playgroud)
或使用其Modifiers财产
var isShift = Keyboard.Modifiers.HasFlag(ModifierKeys.Shift);
var isCtrl = Keyboard.Modifiers.HasFlag(ModifierKeys.Control);
var isAlt = Keyboard.Modifiers.HasFlag(ModifierKeys.Alt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8054 次 |
| 最近记录: |