Какие элементы управления принимают все сообщения клавиатуры и мыши в uwp (кнопка не принимает нажатие левой кнопки) - PullRequest
0 голосов
/ 11 февраля 2020

Мне нужен элемент управления, который может принимать все события клавиатуры и мыши. Или как пользовательские элементы управления принимают события клавиатуры и мыши

1 Ответ

0 голосов
/ 12 февраля 2020

В UWP почти все элементы управления могут получать события от клавиатуры или мыши.

кнопка не принимает нажатие левой кнопки

Если вы просто слушаете Button.Click событие, он может только определить, нажата ли кнопка. Методом запуска может быть мышь или палец и др. c. Для пальца нет разницы влево-вправо.

Вы можете прослушивать PointerPressed событие

private void Button_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    var pointer = e.GetCurrentPoint(sender as Button);
    if (pointer.PointerDevice.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        if (pointer.Properties.IsLeftButtonPressed)
        {
            // do something...
        }
    }
}

Кроме того, события, связанные с указателем, включают PointerEntered, PointerExited, et c.

Для событий клавиатуры вы можете прослушивать такие события, как KeyDown и KeyUp.

Например:

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        // do something...
    }
}

Если вы хотите узнать больше, эти документы могут быть полезны:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...