加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何检测KeyDown或KeyUp WPF事件中的方括号?

发布时间:2020-12-16 01:55:11 所属栏目:百科 来源:网络整理
导读:我想在 WPF Popup的KeyDown事件中检测按键是否会导致关闭 square bracket]: private void MyPopup_KeyDown(object sender,KeyEventArgs e) { if (theKeyStrokeWouldResultIsAClosingSquareBracket) { // ... // do stuff // ... e.Handled = true; } } 该解
我想在 WPF Popup的KeyDown事件中检测按键是否会导致关闭 square bracket]:

private void MyPopup_KeyDown(object sender,KeyEventArgs e)
    {
        if (theKeyStrokeWouldResultIsAClosingSquareBracket)
        {
            // ...
            // do stuff
            // ...

            e.Handled = true;
        }
    }

该解决方案必须适用于任何键盘布局.请注意,不同布局的关键映射通常会有很大差异.因此,检查正确的组合键(如德国QWERTZ键盘上的Ctrl Alt Digit 9或US QUERTY键盘上的OemCloseBrackets)很遗憾没有解决方案.

尽管有这些问题,你怎么能完成这样的检测呢?

编辑 – 在开始赏金之前添加一些信息:

我目前正在我当前的项目中实现类似IntelliSense的功能. IntelliSense的灵感来自于:http://www.codeproject.com/Articles/22803/Intellisense-like-Method-Selection-Pop-up-Window

自定义语法允许使用[abc].[def]>等表达式. [ghi].[jkl],用户应该能够使intellisense函数自动完成括号中的文本.为了使intellisense函数与Visual Studio(以及许多其他IDE)的行为更相似,我想让用户在弹出的列表框中键入一个结束方括号以强制自动完成.

解决方法

您应该使用PreviewTextInput事件 – 这将获得TextCompositionEventArgs参数,其Text属性将是结束括号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读