Windows手机上按住后的信息菜单

4

当一个按钮触发了“按住”事件时,是否可以创建某种信息菜单?我稍微研究了一下ContextMenu,但是当你停止按住时它不会自动关闭。我想要的是一个弹出窗口或类似的东西,在按钮事件“按住”被按下时显示某种信息,并在不再“按住”时关闭。如果可能的话,我该使用什么?


那似乎有点反直觉。让用户像通常一样轻触清除弹出窗口有什么问题吗? - Steve
为什么它被用于计算机,而不是手机上? - JTIM
2个回答

1
我猜解决方案可能是使用弹出窗口,就像你所说的那样。因此,当触发 hold 事件时,您可以使用手指的位置显示一个弹出窗口。当用户释放屏幕时,操作结束事件应该被触发,然后您可以使用布尔值来检查它是否是 hold 事件。
如果是 hold 事件,则关闭弹出窗口,或者如果需要从内存中删除它,则删除它。

0

是的,您可以使用Popup类来显示任何类型的消息或您想要的选项。

参考一些这些示例:

Windows Phone 8中的弹出窗口

WP8:没有可用的弹出窗口?

对于hold事件,您可以使用工具包

XAML:

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

<toolkit:GestureService.GestureListener>
     <toolkit:GestureListener Hold="GroupItem_Hold"/>
 </toolkit:GestureService.GestureListener>

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

                                    <toolkit:MenuItem Header="Remove Group" Click="removeGroup"/>
                                </toolkit:ContextMenu>
                            </toolkit:ContextMenuService.ContextMenu>

.cs:

  private void removeGroup(object sender, RoutedEventArgs e)
        {
        //do something here
        }

 private void GroupItem_Hold(object sender, GestureEventArgs e)
        {
        var holdItem = (sender as StackPanel).DataContext as Usergroup;

        App.selectedGroup = holdItem.id.ToString();

        grp_name = holdItem.groupName;
        }

我使用上述代码来获取用户长按列表框中特定项时的详细信息。
希望能对您有所帮助 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接