2016-11-14 132 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))來解決。 –