在图像wp8上的列表框数据模板中打开工具包上下文菜单

时间:2014-08-23 10:52:32

标签: c# windows-phone-8

我有一个列表框,在列表框数据模板中,我有一个上下文菜单,当我按住列表项时会打开。但我想要做的是点击列表项数据模板中的图像打开上下文菜单。我如何实现这一点,因为从可视树帮助程序中看不到工具包菜单。此外,我不想从数据模板中删除上下文菜单,因为我需要有关通过数据上下文传递的所选项的信息。有没有办法做到这一点,还是我应该创建自己的自定义弹出窗口?

1 个答案:

答案 0 :(得分:2)

您可以通过编程方式打开上下文菜单。只需在ListBox ItemTemplate中的图像控件上添加一个tap事件,并使用XAML添加正确的代码,就像您想要使用带有按钮的上下文菜单一样。

在Image1_Tap事件中添加以下代码:

private void image1_Tap(object sender, GestureEventArgs e)
{
    Image image = sender as Image;
    ContextMenu contextMenu = ContextMenuService.GetContextMenu(image);
    if (contextMenu.Parent == null)
    {
        contextMenu.IsOpen = true;
    }
}

XAML代码是这样的:

<Image>

    <toolkit:ContextMenuService.ContextMenu>
        <toolkit:ContextMenu>
            ...
        </toolkit:ContextMenu>
    </toolkit:ContextMenuService.ContextMenu>

</Image>