C# WPF按钮点击

3
我想知道是否有一种方法来检查按键是否被点击?
我想创建一个类似文本编辑器的东西,我已经完成了大部分工作。现在,当我按下一个按钮时,在元素PreviewKeyUpPreviewKeyDown下有一个函数... 是否有像PreviewKeyClickKeyClick这样的东西?
PS:我正在使用Visual Studio 2010并编译针对.NET Framework 3.5... 我知道我可以使用4.0,但由于客户端PC上的限制,我只能使用3.5。该应用程序针对特定客户端,并且我无法更新客户机上的.NET Framework。如果需要更多详细信息,请不要犹豫提问。

可能是Can I enable PreviewClick using InputBindings in WPF?的重复问题。 - Conrad Frix
@Conrad Frix:不是重复的问题,您提到的那个是用于ListView!而不是TextBoxes和键盘按钮点击。 - sikas
2个回答

2

我认为你需要的是KeyPress事件。警告:它不适用于非字符键。


当我按下“K”键时,我在列表中看到的只有KeyUp和KeyDown事件,找不到KeyPress事件!! - sikas
我不知道为什么你看不到它,但它确实存在。http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress(VS.90).aspx - soandos
我猜在 WPF 中不支持这个! - sikas
@sikas 正确。在 WPF 中,您可能希望使用 KeyDown - Dan J

2

通常情况下,对于文本编辑器,您需要处理TextInput(或PreviewTextInput)和KeyDown / PreviewKeyDown事件。后者处理未包含在TextInput事件中的键。


成功了!现在我该如何读取退格键、空格键和回车键以及其他按键? - sikas
1
@sikas - 我相信你需要使用KeyDown来处理Backspace/Delete等操作,但一般的文本输入应该通过TextInput来处理。TextInput在各种方面都很智能,比如输入非ASCII字符。不同的语言有不同的规则/输入方式。因此,在英语中键入“ab”将是“ab”,但在另一种语言中可能会得到一个带有重音/波浪符号的“a”。 - CodeNaked

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接