如何检查是否按下了屏幕键盘 Ctrl 键?
How can I check for the on screen keyboard's Ctrl key being pressed down?
我目前有这个代码:
DataGrid.SelectionChanged += new SelectionChangedEventHandler(DataGrid_SelectionChanged);
private void DataGrid_SelectionChanged(object sender, EventArgs e)
{
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{
//do stuff
}
}
当数据网格中的选择发生变化时,代码会检查 Ctrl 按钮,这可以很好地检测普通物理键的 Ctrl 键,但是当我使用屏幕键盘并按下 Ctrl 键时,它不会在我的程序中注册。这段代码的根源在于,当您使用屏幕键盘的 Ctrl 键时,您无法在 WPF 中按住 Ctrl+单击数据网格中的行。
编辑:如果我在屏幕键盘上按 ctrl 然后按 "A"(全选),则似乎满足 if 条件。 None 其他快捷键(ctrl+c、ctrl + v 触发此响应)
我最终围绕这个问题进行了编码,并为数据网格中的每一行添加了一个复选框。虽然这不再允许使用 ctrl+click 和 shift+click,但选择机制的工作方式与在触摸屏上和在物理键盘上一样好。我希望最终屏幕键盘的功能会更全并且更少 "bugs".
我目前有这个代码:
DataGrid.SelectionChanged += new SelectionChangedEventHandler(DataGrid_SelectionChanged);
private void DataGrid_SelectionChanged(object sender, EventArgs e)
{
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
{
//do stuff
}
}
当数据网格中的选择发生变化时,代码会检查 Ctrl 按钮,这可以很好地检测普通物理键的 Ctrl 键,但是当我使用屏幕键盘并按下 Ctrl 键时,它不会在我的程序中注册。这段代码的根源在于,当您使用屏幕键盘的 Ctrl 键时,您无法在 WPF 中按住 Ctrl+单击数据网格中的行。
编辑:如果我在屏幕键盘上按 ctrl 然后按 "A"(全选),则似乎满足 if 条件。 None 其他快捷键(ctrl+c、ctrl + v 触发此响应)
我最终围绕这个问题进行了编码,并为数据网格中的每一行添加了一个复选框。虽然这不再允许使用 ctrl+click 和 shift+click,但选择机制的工作方式与在触摸屏上和在物理键盘上一样好。我希望最终屏幕键盘的功能会更全并且更少 "bugs".