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