【问题标题】:WPF- How to set event Up, Down, Left, Right without using the Up, Down, Left and Right Arrow Key?WPF-如何在不使用向上、向下、向左和向右箭头键的情况下设置事件向上、向下、向左、向右?
【发布时间】:2011-06-21 21:30:47
【问题描述】:

我正在使用面部跟踪进行 HCI(人机交互)。我正在尝试使用人脸控制 PC。

我有 3x3 二维网格的按钮。 1 2 3 4 5 6 7 8 9

假设,当前焦点在按钮 5 上。如果我按向上箭头,那么焦点将在 2 上,向下箭头焦点将在 8 上,向左箭头 4 和向右箭头 6。

我想在不使用向上、向下、向左和向右箭头键的情况下实现向上、向下、向左和向右箭头功能。我已经完成了左、右、上和下的决定。需要进行哪些事件处理、设置 tabindex 和进一步处理?

【问题讨论】:

  • 假设您有一个 3x3 的按钮矩阵。您跟踪焦点按钮的行和列值。向上表示行-- 等等。当您进行更改时,将焦点设置到相应的按钮。看起来很简单,我错过了什么?

标签: c# .net wpf button setfocus


【解决方案1】:

如果您询问如何引发键盘新闻事件,那么我认为您可以使用SendKeys Class。

我假设您想创建一个程序,该程序使用人脸跟踪将用户移动转换为 UP DOWN 等按键事件。上面的类有一个方法 Send() 方法,它接受一个密钥代码并将密钥传递给活动应用程序。

喜欢:

SendKeys.Send("{UP}");//For UP arrow key

由于您已经创建了将焦点转移到网格中相应按钮的方法,您可以在引发事件时发送相应的键。

但是,FaceDetection 是一项研究级任务,您需要自己实现它或找到一些好的库来引发这些事件。


有一个OpenCVDotNet 库可以用来做这样的事情。它实际上是OpenCV 库的.Net 包装器。前往他们的网站,看看你是如何使用它的。
更新

要在 WPF 中生成按键事件,请查看此 SO Answer。

How can I programmatically generate keypress events in C#?

【讨论】:

  • 哦!它的 WPF 没有注意到.. SendKeys 在 WPF 中不起作用.. 让我看看是否有替代方案.. 否则您可能需要 StepDown 到 WinForms...
猜你喜欢
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
相关资源
最近更新 更多