2

我不确定如何开始这个项目,但我的要求如下(对于我不确定如何实现的部分):

  • 按住 Tab 键应显示覆盖。放开 tab 键应该隐藏覆盖。我将如何在全球范围内捕捉到这一点?检查 Tab 键是否仍被按住的最佳方法是什么?
  • 覆盖应显示在所有其他应用程序之上。它不必显示在全屏应用程序上,但能够这样做是最佳选择。
  • 分辨率缩放?不那么重要,但是根据用户的显示器分辨率来确定覆盖比例的大小会很好。

我还没有开始,但是哪种项目类型最适合呢?我在考虑 WPF 而不是 WindowsForms,因为它似乎在演示方面提供了更多的灵活性。任何关于上述几点的建议将不胜感激!

4

1 回答 1

4

在 WPF 中,您可以这样做:

对于全局 TAB 键处理,在应用程序的入口点(通常是 App.xaml.cs),运行以下代码:

EventManager.RegisterClassHandler(typeof(UIElement), UIElement.PreviewKeyUpEvent, new KeyEventHandler(OnPreviewKeyUp));

根据需要使用 (Preview)Key(up/Down)Event,如果在 Preview 事件处理程序中设置 e.Handled = true,则事件将停止其路由,其他人将无法对其作出反应。

在 OnPreviewKeyUp 中,检查e.Key == Key.Tab并显示覆盖窗口(如果是)。


事件处理程序的签名应如下所示:

private static void OnPreviewKeyUp(object source, KeyEventArgs e)


现在对于点击部分,制作一个窗口并将叠加层的背景设置为null

WindowStyle="None" AllowsTransparency="True" Background="{x:Null}"
于 2012-09-17T14:46:24.393 回答