我如何检查屏幕上的键盘'Ctrl键被按下

本文关键字:Ctrl 键盘 何检查 检查 屏幕 | 更新日期: 2023-09-27 18:05:11

我现在有这样的代码:

        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+Click Datagrid中的行。

编辑:它似乎满足if条件,如果,在屏幕上的键盘上,我按ctrl,然后"A"(选择所有)。其他快捷键(ctrl+c, ctrl+ v)都不会触发此响应

我如何检查屏幕上的键盘'Ctrl键被按下

我最终围绕这个问题进行了编码,并在数据网格中的每一行添加了一个复选框。尽管这不再允许使用ctrl+click和shift+click,但选择机制在触屏和物理键盘上的效果一样好。我希望最终屏幕键盘能更全面的功能和更少的"bug"。