【发布时间】:2021-05-17 11:47:06
【问题描述】:
我有这段代码在应用程序的某个位置显示MenuFlyout(用户在控件上有RightTapped)。当我将MenuFlyout 与
f.ShowAt(sender as FrameworkElement)
但它的位置不在必须显示的位置附近(发送者控件在屏幕上相当大)。
所以,我将显示命令更改为
f.ShowAt(sender as FrameworkElement, args.Position)。
现在,MenuFlyout 显示在它应该在的位置(就在RightTap 位置的顶部),但它不会对项目上的点击事件做出反应。 MenuFlyout 隐藏,但没有关于项目的事件。
MenuFlyout f = new MenuFlyout();
MenuFlyoutItem menuFlyoutItem = new MenuFlyoutItem
{
Text = "Open in X1",
IsTabStop = false,
Tag = args.Location
};
menuFlyoutItem.AddHandler(TappedEvent, new TappedEventHandler(OpenInX1_Tapped), true);
f.Items.Add(menuFlyoutItem);
menuFlyoutItem = new MenuFlyoutItem
{
Text = "Open in X2",
IsTabStop = false,
Tag = args.Location
};
menuFlyoutItem.AddHandler(TappedEvent, new TappedEventHandler(OpenInX2_Tapped), true);
f.Items.Add(menuFlyoutItem);
f.Placement = FlyoutPlacementMode.Top;
f.ShowAt(sender as FrameworkElement, args.Position);
//f.ShowAt(sender as FrameworkElement);
你为什么会这样?还有,我该如何解决?
谢谢。
【问题讨论】: