2017-05-20 11 views
0

ここではListViewを取得しました。ユーザーがアイテムを使わずにアイテムまたは空白を左クリックまたは右クリックすると、別の操作を行う必要があります。 クリックイベントがアイテムまたは空白で発生していることを知るにはどうすればよいですか?私はListViewのイベントでそれを処理する必要がありますか?UWPのListViewで左/右クリックのイベントターゲットを検出するにはどうすればよいですか?

+0

は 'ListViewItem'レベルや' ItemTemplate'レベルでそれらを処理を参照してください。 –

答えて

0

ListView ItemClickイベントを使用して、右または左ボタンが取得できるかどうかをクリックします。

しかし、あなたはListViewItemでAddHandleを使うことができます。

ListViewItemにグリッドがある場合は、ハンドルを追加してマウスを下に置くことができます。

<ListView ItemsSource="{x:Bind AvaloniaCol}" IsItemClickEnabled="True" ItemClick="ListViewBase_OnItemClick"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Grid Background="#FFFFFF" PointerPressed="UIElement_OnPointerPressed"> 
        <TextBlock Text="{Binding}"></TextBlock> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

csにUIElement_OnPointerPressedを書き込むことができます。

private void UIElement_OnPointerPressed(object sender, PointerRoutedEventArgs e) 
    { 
     if (e.Pointer.PointerDeviceType == PointerDeviceType.Mouse) 
     { 
      var p = e.GetCurrentPoint((UIElement)sender); 
      if (p.Properties.IsLeftButtonPressed) 
      { 

      } 
      else if (p.Properties.IsRightButtonPressed) 
      { 

      } 
     } 
    } 

あなたは左または右ボタンクリックされたかどうかを取得するためにvar p = e.GetCurrentPoint((UIElement)sender);とp.Propertiesを使用することができます。

http://lindexi.oschina.io/lindexi//post/win10-uwp-%E8%8E%B7%E5%8F%96%E6%8C%89%E9%92%AE%E9%BC%A0%E6%A0%87%E5%B7%A6%E9%94%AE%E6%8C%89%E4%B8%8B/

+0

コード内でAddHandlerを使用でき、xaml内でAddHandlerを使用できないボタンを使用する場合。 – lindexi

関連する問題