【问题标题】:WPF Press any button to continue to next pageWPF 按任意按钮继续下一页
【发布时间】:2019-06-13 01:41:52
【问题描述】:

有一个简单的 3 页程序,但想制作一个欢迎屏幕,用户必须按一个按钮才能移至下一页(并启动工作流程)。 用户将主要使用条形码扫描仪(捕获字符串并点击输入),所以我试图避免需要用鼠标单击的按钮。 该设置基本上是一个 MainWindow,其中有一个 DockPanel,其中有一个 Frame。 页面被加载到事件的框架中(在文本框上被击中)。页面中有带有标准控件的网格。 我在窗口中导航到欢迎页面的框架,但似乎无法捕获按键。 什么会让我举办这个活动?窗口、框架、停靠面板、页面、网格? 另外,有没有办法指定“任何键或点击”事件,也许监听任何输入动作? 我已经尝试过尝试并查看文档,但我似乎无法得到它。

【问题讨论】:

  • 我不相信 WPF 中的 TextBox 有按键事件。此外,条形码扫描仪相当于应用程序的键盘,因此任何扫描的代码都将显示为 WPF 文本框的键盘输入。条形码扫描仪也可以编程为发送或不发送回车,因此这有点难以回答,除非您提供一些您拥有的代码并更清楚地描述您希望它如何响应给定的输入。

标签: c# wpf xaml controls


【解决方案1】:

将此添加到您的设计师:

this.myForm.KeyDown += new System.Windows.Forms.KeyEventHandler(this.myForm_KeyDown);

并将其添加到您的表单代码中

private void myForm_KeyDown(object sender, KeyPressEventArgs e)
{
     if(KeysDown().Any()) 
     {
         currentForm.Hide();
         nextForm,Show();
     }
}

【讨论】:

    【解决方案2】:

    我创建了一个带有框架的空 WPF 应用程序,并且能够捕获按键事件。应用程序启动后,我会聚焦框架。页面加载后或工作流程重新开始时,您可以执行相同的操作。

    <Frame Loaded="FrameworkElement_OnLoaded" KeyUp="UIElement_OnKeyUp">
        <Frame.Content>
            <Page>
                <Label Content="Hello"></Label>
            </Page>
        </Frame.Content>
    </Frame>
    
    private void FrameworkElement_OnLoaded(object sender, RoutedEventArgs e)
    {
        ((Frame)sender).Focus();
    }
    
    private void UIElement_OnKeyUp(object sender, KeyEventArgs e)
    {
        MessageBox.Show("Key pressed");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 2013-11-10
      • 2015-01-23
      • 1970-01-01
      相关资源
      最近更新 更多