2012-12-16 3 views
7

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

+2

Существует пример кода [здесь] (http://msdn.microsoft.com/en-us/library/windows/apps/windows .ui.xaml.uielement.pointerpressed) –

ответ

8

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 
     } 
    } 
} 
3

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

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 
    } 
} 
Смежные вопросы