【问题标题】:Info menu upon Hold for Windows phoneWindows 手机的“保留”上的信息菜单
【发布时间】:2014-06-23 10:54:24
【问题描述】:

当按钮触发事件Hold时,是否可以创建某种信息菜单。我对 ContextMenu 进行了一些研究,但是当您停止按住时,它不会自动关闭。我想要的是一个弹出窗口,或者类似的东西,它在按钮事件 Hold 被按下时显示某种信息,并在它不再“Holded”时关闭。这可能吗,在这种情况下我应该使用什么?

【问题讨论】:

  • 嗯,这似乎有点违反直觉。让用户像往常一样通过点击清除弹出窗口有什么问题?
  • 为什么用在电脑上,为什么不用在手机上?

标签: c# xaml button windows-phone-8


【解决方案1】:

我想一个解决方案可能是按照你说的那样使用弹出窗口。因此,当触发保持事件时,您会使用手指的位置显示一个弹出窗口。当用户释放屏幕时,应该触发操作结束事件,然后您可以使用布尔值来检查它是否是保持事件。

如果它是一个保持事件,那么你关闭弹出窗口,或者删除它,如果你需要从内存中删除它。

【讨论】:

    【解决方案2】:

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

    参考以下一些示例:

    Popup in windows phone 8

    WP8: no popup available?

    对于保持事件,您可以使用toolkit

    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;
            }
    

    当用户按住某个特定项目时,我使用上面的代码从列表框中获取该项目的详细信息。

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-24
      • 2017-05-04
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2011-07-17
      • 2020-07-28
      • 1970-01-01
      相关资源
      最近更新 更多