WPF Нажмите любую кнопку, чтобы перейти на следующую страницу - PullRequest
0 голосов
/ 18 января 2019

Получил простую трехстраничную программу, но хотел бы создать экран приветствия, чтобы пользователи могли нажать кнопку, чтобы перейти на следующую страницу (и запустить рабочий процесс). Пользователи в основном будут использовать сканер штрих-кода (захватывает строку и вводит хиты), поэтому я стараюсь избегать кнопок, которые нужно нажимать мышью. В основном это одно MainWindow с DockPanel и рамкой. Страницы загружаются во фрейм по событиям (ввод вводится в текстовое поле). На страницах есть сетки со стандартными элементами управления. У меня есть рамка в окне, переходящая на страницу приветствия, но, похоже, не удается зафиксировать нажатие клавиши. Что бы поставило мне событие? Окно, рама, док-панель, страница, сетка? Кроме того, есть ли способ указать событие «любая клавиша или щелчок», может быть, прослушать любое действие ввода? Я пытался экспериментировать и смотреть на документацию, но, похоже, не могу ее получить.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Добавьте это к своему дизайнеру:

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();
     }
}
0 голосов
/ 18 января 2019

Я создал пустое приложение 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...