ContextMenu点击而不是点击并按住
我需要打开一个菜单,因为WP7 not designed
执行这些操作not designed
,所以我正在使用Toolkit。 以下是示例代码:
现在只要用户按下并保持动作,这就可以正常工作。 但我不能要求用户采取这样的行动。 我需要在单击/点击/触摸/手势(您要调用它的水)上显示菜单。 有人可以建议吗? 如果您认为工具包不是最佳方式,那么请使用示例代码建议替代方案。 我试过弹出窗口,但这比我的应用程序更糟糕
您可以将GestureListener
添加到Border
并订阅Tap
事件。 在事件处理程序中,您获取Border
的ContextMenu
,如果没有逻辑父项,则将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; } }
如果您需要应用程序的上下文菜单,则ContextMenu
和ContextMenuService
是最佳方法,因为它是整个第三方和预安装应用程序的标准。 用户已经理解了“点击并保持”手势,因此解决这个问题将违反直觉。
如果(无论出于何种原因)您必须从单击启动ContextMenu
,那么您始终可以从Silverlight Toolkit自定义ContextMenu.cs的源代码,以便挂钩Tap
事件而不是挂钩Hold
事件。