PointerPressed: левая или правая кнопка?

Как я могу получить тип нажатого указателя (левая мышь вниз или правая мышь вниз) в приложении Metro style C#? Я не нашел MouseLeftButtonDown обработчик событий в любом элементе UI стиля Metro. Я должен использовать событие, но я не знаю, как я могу узнать, какая кнопка была нажата.

2 ответов


PointerPressed достаточно для обработки кнопок мыши:

void MainPage_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    // Check for input device
    if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        var properties = e.GetCurrentPoint(this).Properties;
        if (properties.IsLeftButtonPressed)
        {
            // Left button pressed
        }
        else if (properties.IsRightButtonPressed)
        {
            // Right button pressed
        }
    }
}

вы можете использовать следующее событие, чтобы определить, какой указатель используется и какая кнопка нажата.

private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;
    Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);

    if (ptrPt.Properties.IsLeftButtonPressed)
    {
        //Do stuff
    }
    if (ptrPt.Properties.IsRightButtonPressed)
    {
        //Do stuff
    }
}