我有一个内部装有大量文本块的网格,以及一个带有附加到网格的各种选项的弹出按钮。
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Name="EditButton" Text="Edit" Click="EditButton_Click"/>
<MenuFlyoutItem x:Name="DeleteButton" Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
问题是弹出控件将出现在网格中间某个固定点上,或者我可以通过编程将其设置为出现在某个元素上。我希望它显示在鼠标右键单击的任何位置。这可能吗,还是我走错路了?
最佳答案
我不知道您如何显示Flyout
,但是在我的应用程序中,我使用RightTapped
的ListView
事件,并在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));
}