当我需要访问Control,Shift,Alt按钮是否按下时,是否有一些全局构造可以使用?例如在TreeView
的MouseDown
事件内。
如果是这样的话,是怎么做的?
发布于 2011-04-22 07:10:54
使用类Keyboard
。使用Keyboard.IsKeyDown
,你可以检查是否按下了Control,Shift,Alt键。
对于Shift:
if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
{ /* Your code */ }
对于控件:
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{ /* Your code */ }
对于Alt:
if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
{ /* Your code */ }
发布于 2011-04-22 07:23:16
还有:
// Have to get this value before opening a dialog, or user will have released the control key
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
}
发布于 2014-09-19 00:06:44
private bool IsShiftKey { get; set; }
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
{
IsShiftKey = Keyboard.Modifiers == ModifierKeys.Shift ? true : false;
if ((Key.Oem3 == e.Key || ((IsShiftKey && Key.Oem4 == e.Key) || (IsShiftKey && Key.Oem6 == e.Key) || (IsShiftKey && Key.Oem5 == e.Key)) && (validatorDefn as FormatValidatorDefinition).format == "packedascii"))
{
e.Handled = true;
}
}
https://stackoverflow.com/questions/5750722
复制相似问题