2016-09-30 5 views
0

마우스 오른쪽 버튼으로 컨텍스트 메뉴를 호출하는 코드가 있습니다.ListView UWP에서 RightClick 메뉴

private void GridColections_RightTapped(object sender, RightTappedRoutedEventArgs e) 
    { 

     MenuFlyout myFlyout = new MenuFlyout(); 
     MenuFlyoutItem firstItem = new MenuFlyoutItem { Text = "OneIt" }; 
     MenuFlyoutItem secondItem = new MenuFlyoutItem { Text = "TwoIt" }; 
     myFlyout.Items.Add(firstItem); 
     myFlyout.Items.Add(secondItem); 
     FrameworkElement senderElement = sender as FrameworkElement; 
     myFlyout.ShowAt(senderElement); 
    } 

하지만 내 목록보기의 가운데에 메뉴가 나타납니다. 내가 마우스를 클릭 한 곳이 아닙니다. 그것을 고치는 방법?

답변

2

플라이 아웃 쇼를 마우스 클릭 지점에두고 싶다면 대신 ShowAt(FrameworkElement)을 사용할 수 있습니다.

클릭 지점에 플라이 아웃을 표시 할 수있는 코드입니다.

 private void GridColection_OnRightTapped(object sender, RightTappedRoutedEventArgs e) 
    { 
     MenuFlyout myFlyout = new MenuFlyout(); 
     MenuFlyoutItem firstItem = new MenuFlyoutItem { Text = "OneIt" }; 
     MenuFlyoutItem secondItem = new MenuFlyoutItem { Text = "TwoIt" }; 
     myFlyout.Items.Add(firstItem); 
     myFlyout.Items.Add(secondItem); 

     //if you only want to show in left or buttom 
     //myFlyout.Placement = FlyoutPlacementMode.Left; 

     FrameworkElement senderElement = sender as FrameworkElement; 

     //the code can show the flyout in your mouse click 
     myFlyout.ShowAt(sender as UIElement, e.GetPosition(sender as UIElement)); 
    } 

+0

모든 노력하고 있습니다! 고맙습니다! – SuxoiKorm