我想检测在WPF事件中击键是否会导致右方括号 :]
KeyDown
Popup
private void MyPopup_KeyDown(object sender, KeyEventArgs e)
{
if (theKeyStrokeWouldResultIsAClosingSquareBracket)
{
// ...
// do stuff
// ...
e.Handled = true;
}
}
该解决方案必须适用于任何键盘布局。请注意,不同布局的键映射通常有很大差异。因此,不幸的是,检查正确的组合键(例如Ctrl + Alt + Digit 9
在德国QWERTZ键盘上或仅OemCloseBrackets
在美国QUERTY键盘上)是没有解决方案的。
尽管存在这些问题,您如何完成这样的检测?
编辑 - 在开始赏金之前添加一些信息:
我目前正在我当前的项目中实现类似 IntelliSense 的功能。IntelliSense 的东西是受此启发的:http: //www.codeproject.com/Articles/22803/Intellisense-like-Method-Selection-Pop-up-Window
自定义语法允许表达式,例如[abc].[def] > [ghi].[jkl]
,用户应该能够使智能感知函数自动完成括号中的文本。为了使智能感知功能更类似于 Visual Studio(以及许多其他 IDE)的行为,我想让用户在弹出的列表框中键入右方括号以强制自动完成。