鼠标光标处的 UWP 位置浮出控件
UWP position flyout at mouse cursor
我有一个网格,里面有很多文本块,还有一个带有各种选项的弹出窗口。
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Name="EditButton" Text="Edit" Click="EditButton_Click"/>
<MenuFlyoutItem x:Name="DeleteButton" Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
问题是弹出窗口将出现在网格中间某处的同一固定位置,或者我可以通过编程方式将其设置为出现在某个元素处。我希望它出现在鼠标被右键单击的任何地方。这可能吗,还是我做错了?
我不知道你是如何显示 Flyout
,但在我的应用程序中,我使用 ListView
的 RightTapped
事件和 [=12] 中的以下代码=] 事件处理程序来实现你想要的相同的东西。
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));
}
我有一个网格,里面有很多文本块,还有一个带有各种选项的弹出窗口。
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem x:Name="EditButton" Text="Edit" Click="EditButton_Click"/>
<MenuFlyoutItem x:Name="DeleteButton" Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
问题是弹出窗口将出现在网格中间某处的同一固定位置,或者我可以通过编程方式将其设置为出现在某个元素处。我希望它出现在鼠标被右键单击的任何地方。这可能吗,还是我做错了?
我不知道你是如何显示 Flyout
,但在我的应用程序中,我使用 ListView
的 RightTapped
事件和 [=12] 中的以下代码=] 事件处理程序来实现你想要的相同的东西。
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));
}