Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF MouseLeftButtonDown事件处理程序中的Ctrl键按下条件_C#_Wpf_Event Handling_Keyboard - Fatal编程技术网

C# WPF MouseLeftButtonDown事件处理程序中的Ctrl键按下条件

C# WPF MouseLeftButtonDown事件处理程序中的Ctrl键按下条件,c#,wpf,event-handling,keyboard,C#,Wpf,Event Handling,Keyboard,如何向WPFMouseLeftButtonDown事件处理程序添加特定键盘键的附加条件 例如Ctrl+key 如果只想检测修改器,还可以使用: if (Keyboard.Modifiers == ModifierKeys.Control) {} if (Keyboard.Modifiers == ModifierKeys.Shift) {} 等等。更多。在.NET 4.0中,您可以使用: Keyboard.Modifiers.HasFlag(ModifierKeys.Control) 这个解

如何向WPF
MouseLeftButtonDown
事件处理程序添加特定键盘键的附加条件

例如Ctrl+key


如果只想检测修改器,还可以使用:

if (Keyboard.Modifiers == ModifierKeys.Control) {}
if (Keyboard.Modifiers == ModifierKeys.Shift) {}

等等。更多。

在.NET 4.0中,您可以使用:

Keyboard.Modifiers.HasFlag(ModifierKeys.Control)

这个解决方案很简单,但不要忘记,
ModifierKeys
是一个标志枚举。因此,正确地检查ctrl键是
if((Keyboard.Modifiers&ModifierKeys.Control)==ModifierKeys.Control){}
@mt_serg您可以通过调用
if(Keyboard.Modifiers.hasblag(ModifierKeys.Control)){}
来简化操作。您不希望热路径上出现
HasFlag()
。在.NETFramework上,它在每次运行时都会产生垃圾。看见
if (Keyboard.Modifiers == ModifierKeys.Control) {}
if (Keyboard.Modifiers == ModifierKeys.Shift) {}
Keyboard.Modifiers.HasFlag(ModifierKeys.Control)