Rav*_*avi 12 c# silverlight silverlight-toolkit windows-phone-7
我需要打开一个菜单,因为WP7 not designed要执行这样的操作,我正在使用Toolkit.以下是示例代码:
<Border BorderThickness="3" Padding="6">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="item1" Click="Item1_Click" />
<toolkit:MenuItem Header="item2" Click="Item2_Click" />
<toolkit:MenuItem Header="item3" Click="Item3_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<TextBlock Text="Tap" />
</Border>
Run Code Online (Sandbox Code Playgroud)
现在只要用户按下并保持动作,这就可以正常工作.但我不能要求用户采取这样的行动.我需要在单击/点击/触摸/手势(您要调用它的水)上显示菜单.有人可以建议吗?如果您认为工具包不是最佳方式,那么请使用示例代码建议替代方案.我试过弹出窗口,但这比我的应用程序更糟糕
Fre*_*lad 14
您可以添加GestureListener到Border并订阅Tap事件.在事件处理程序中,如果没有逻辑父代,则获取ContextMenufor Border和设置IsOpen为true.
<Border BorderThickness="3" Padding="6">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="GestureListener_Tap" />
</toolkit:GestureService.GestureListener>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="item1" Click="Item1_Click" />
<toolkit:MenuItem Header="item2" Click="Item2_Click" />
<toolkit:MenuItem Header="item3" Click="Item3_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<TextBlock Text="Tap" />
</Border>
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5951 次 |
| 最近记录: |