2016-11-14 138 views
0

我有一个网格,里面有一个文本块的载入和一个连接到网格的各种选项的弹出窗口。UWP在鼠标光标处的位置弹出

<FlyoutBase.AttachedFlyout> 
    <MenuFlyout> 
     <MenuFlyoutItem x:Name="EditButton" Text="Edit" Click="EditButton_Click"/> 
     <MenuFlyoutItem x:Name="DeleteButton" Text="Delete"/> 
    </MenuFlyout> 
</FlyoutBase.AttachedFlyout> 

的问题是,在弹出将某处出现在同一个点固定在网格的中间或我可以将其设置编程出现在的元素。我希望它出现在鼠标右键点击的地方。这是可能的还是我正在做这个错误的方式?

+0

你能告诉我们打开弹出窗口的代码吗? –

回答

2

我不知道你是如何展示Flyout,但在我的应用程序,我用我的ListViewRightTapped事件,并在RightTapped事件处理程序下面的代码来实现同样的事情,只要你想。

private void MyListView_RightTapped(object sender, RightTappedRoutedEventArgs e) 
{ 
    var tappedItem  = (UIElement)e.OriginalSource; 
    var attachedFlyout = (MenuFlyout)FlyoutBase.GetAttachedFlyout(MyListView); 

    attachedFlyout.ShowAt(tappedItem, e.GetPosition(tappedItem)); 
} 
+0

MenuFlyout可以显示在特殊位置,但不能在特定位置显示Flyout。 – lindexi

+0

在指定位置显示的是子MenuFlyoutItems的Tapped事件。可能是最新的UWP SDK中的一个错误。 –

+0

UPDATE:这可以通过先调用ShowAt(tappedItem),然后调用ShowAt(tappedItem,e.GetPosition(tappedItem))来解决。 –