2016-09-30 4 views
0

У меня есть код, который вызывает контекстное меню правой кнопкой мыши.Меню RightClick в ListView UWP

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(UIElement,Point), а не 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

Смежные вопросы