2012-12-16 10 views
7

MetroスタイルのC#アプリケーションで、押されたポインタのタイプ(左マウスまたは右マウスを押したまま)を取得するにはどうすればよいですか?どのメトロスタイルのUI要素でもMouseLeftButtonDownイベントハンドラが見つかりませんでした。私は代わりに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 
    } 
} 
関連する問題