Windows 8 打开win 8 metro应用程序中项目上方的上下文菜单

Windows 8 打开win 8 metro应用程序中项目上方的上下文菜单,windows-8,Windows 8,我在ListView中定义了一个项目列表。当用户单击或轻触任何项目时,我想在所选项目上方显示一个弹出菜单。我应该如何定位弹出菜单 varmenu =newPopupMenu(); menu.Commands.Add( newUICommand("Remove", (x) => {... // Create the message dialog and set its content }, 1)); var chosenCommand =awaitmenu.ShowForSelec

我在ListView中定义了一个项目列表。当用户单击或轻触任何项目时,我想在所选项目上方显示一个弹出菜单。我应该如何定位弹出菜单

varmenu =newPopupMenu();
menu.Commands.Add(
newUICommand("Remove", (x) =>
{...
// Create the message dialog and set its content
}, 1));

var chosenCommand     =awaitmenu.ShowForSelectionAsync(GetElementRect((FrameworkElement)sender));

Rect GetElementRect(FrameworkElement element)
{    
    GeneralTransform buttonTransform = element.TransformToVisual(null);
    Pointpoint = buttonTransform.TransformPoint(newPoint());
    returnnewRect(point,newSize(element.ActualWidth, element.ActualHeight));
}

这是我用来打开应用程序栏按钮上方的弹出菜单的代码

private async void OnOpenMenu(object sender, RoutedEventArgs e)
{
    var button = (Button)sender;
    var transform = button.TransformToVisual(this);
    var point = transform.TransformPoint(new Point(0, 0));

    var menu = new PopupMenu();

    menu.Commands.Add(new UICommand("Menu Item 1"));
    menu.Commands.Add(new UICommand("Menu Item 2"));

    await menu.ShowAsync(point);
}

谢谢,我将尝试此操作,但现在我们正在尝试按住以选择一个项目,而不是显示一个菜单放置启用删除按钮。这比只显示一个选项的菜单要好得多:)@Nigel我想在textblock下面显示上下文…但使用上面的代码菜单显示在textblock上面。非常感谢您的帮助。您可以从0,0调整转换点中的数字。这会改变菜单的位置。