ContextMenu, 可以认为是上下文菜单,在某控件上长按时出现。
如下图:
它的使用方法,可以有两种。
第一种,通过代码来实现,利用ContextMenuService
ContextMenu menu = new ContextMenu();
MenuItem menuItem1 = new MenuItem();
menuItem1.Header = "This is Menu Item 1";
menuItem1.Click += new RoutedEventHandler(MenuItem_Click);
menu.Items.Add(menuItem1);
MenuItem menuItem2 = new MenuItem();
menuItem2.Header = "This is Menu Item 2";
menuItem2.Click += new RoutedEventHandler(MenuItem_Click);
menu.Items.Add(menuItem2);
ContextMenuService.SetContextMenu(rc,menu); //这里的rc,表示的是矩形框的名字,也可以说是ContextMenu依附的那个控件的名字。
首先,需要添加命名空间:xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
<Rectangle Width="100" Height="100" Fill="Red">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="this is menu item 1" Click="MenuItem_Click" />
<toolkit:MenuItem Header="this is menu item 2" Click="MenuItem_Click" />
<toolkit:MenuItem Header="this is menu item 3" Click="MenuItem_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Rectangle>
实际效果:
另外,在使用ContextMenu时会注意到模拟器上背景内容的缩放,这个可以通过IsZoomEnabled属性来控制。将其设置为False时,可以停止自动的缩放动画。
<toolkit:ContextMenu IsZoomEnabled="False"> --------------这是在21日谈中讲到的
实际在模拟器上尝试的结果是,这个属性的设置并没有起作用。不知道什么原因。
更新:
IsZoomEnabled这个属性在button控件上是起作用的。当在button上添加ContextMenu时,设置IsZoomEnabled=False,这时的背景就没有了自动缩放效果。
一篇更为详尽的介绍ContextMenu的文章:
http://www.windowsphonegeek.com/articles/WP7-ContextMenu-in-depth--Part1-key-concepts-and-API
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。