有没有内置的弹出窗口,比如当用户按住时
本文关键字:用户 内置 窗口 有没有 | 更新日期: 2023-09-27 18:26:23
当用户持有一个项目时,会出现一个弹出窗口,用于删除、发送等。
为此,我可以创建一个窗口并将其可见性设置为可见,但有没有内置的方法,比如内置的ApplicationBar?
任何参考资料都是有用的。(它是WP8应用程序)。
您所指的在Windows Phone的世界中被称为ContextMenu。为此,您需要使用Windows Phone工具包(http://phone.codeplex.com/)您可以从NuGet轻松安装。它本身并不是一个内置控件,但它几乎是官方的,因为WP Toolkit基本上是由Windows Phone团队的一些成员完成的(随着时间的推移,一些控件会被移到内置框架中,例如最近的LongListSelector和其他一些控件)。
因此,使用它非常简单。在XAML中的任何UIElement上,只需在其中定义以下内容(在本例中,UIElement是一个网格):
<Grid>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem
Header="Menu Item One"
Command="{Binding MenuOneCommand}" />
<toolkit:MenuItem
Header="Menu Item Two"
Command="{Binding MenuTwoCommand}" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
您可以为每个MenuItem定义"Click"事件处理程序,但我建议(如上面的示例所示)在命令上使用数据绑定,遵循MVVM原则。这是因为,当您对列表项使用ContextMenu时,通常很难确定它属于哪个项,而当您使用绑定时,您可以很容易地在CommandParameter中绑定当前数据上下文(即项)。例如:
<DataTemplate x:Key="ListItemTemplate">
<Grid>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem
Header="Delete Item"
Command="{Binding DeleteItemCommand}" CommandParameter="{Binding}" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
</DataTemplate>
这样,在命令的执行处理程序中,您可以方便地将数据项对象作为参数传入。
检查codeplex上WindowsPhone工具包中可用的上下文菜单。http://phone.codeplex.com