ContextMenu点击而不是点击并按住

我需要打开一个菜单,因为WP7 not designed执行这些操作not designed ,所以我正在使用Toolkit。 以下是示例代码:

           

现在只要用户按下并保持动作,这就可以正常工作。 但我不能要求用户采取这样的行动。 我需要在单击/点击/触摸/手势(您要调用它的水)上显示菜单。 有人可以建议吗? 如果您认为工具包不是最佳方式,那么请使用示例代码建议替代方案。 我试过弹出窗口,但这比我的应用程序更糟糕

您可以将GestureListener添加到Border并订阅Tap事件。 在事件处理程序中,您获取BorderContextMenu ,如果没有逻辑父项,则将IsOpen设置为true。

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

如果您需要应用程序的上下文菜单,则ContextMenuContextMenuService是最佳方法,因为它是整个第三方和预安装应用程序的标准。 用户已经理解了“点击并保持”手势,因此解决这个问题将违反直觉。

如果(无论出于何种原因)您必须从单击启动ContextMenu ,那么您始终可以从Silverlight Toolkit自定义ContextMenu.cs的源代码,以便挂钩Tap事件而不是挂钩Hold事件。