【WP7】上下文菜单的使用

本文详细介绍了如何在WP7开发中实现弹出菜单功能,包括安装必要的工具包、添加控件、配置弹出菜单以及如何在代码中处理菜单项响应。此外,还提供了创建分隔符的方法,使菜单更加清晰易用。

在WP7开发中,没有桌面应用程序的右键菜单,但是同样有弹出菜单可以使用,通过长按操作可以弹出菜单,一般用于Pin To Start

在WP7中,大部分控件都支持弹出菜单功能

 

首先需要安装

   Silverlight for Windows Phone Toolkit,可以到微软下载中心下载

  然后把控件添加到工具栏

  在Xaml文件头添加命名空间,下面可以通过toolkit名字引用

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

  然后在控件内部如下声明(以HubTile控件为例,其他控件相似)

    <toolkit:HubTile Source="back.png" Tap="hubTile1_Tap" Title="瓷片" Height="173" HorizontalAlignment="Left" Margin="12,23,0,0" Name="hubTile1" VerticalAlignment="Top" Width="173" >
        <toolkit:ContextMenuService.ContextMenu>
            <toolkit:ContextMenu VerticalOffset="0" IsZoomEnabled="True" >
                <toolkit:MenuItem Header="钉到【开始】界面"  Click="PinItem_Click" Name="menuItemYuer"/>
            </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
    </toolkit:HubTile>

  MenuItem为控件项,然后添加相应的响应函数即可

 

在C#代码中  

    ContextMenu menu = ContextMenuService.GetContextMenu(button1);    //获得控件的弹出菜单
    
    MenuItem item = new MenuItem();
    item.Name = "itemName";
    item.Header = "header";
    item.Click += new RoutedEventHandler(item_Click);

    menu.Items.Add(item);        //添加菜单项

    也可以通过MenuItem获取到该菜单对应的项,例如在点击菜单项的时候,通过menuItem的DataContext属性访问对应的项NoteItem;

        private void menuItem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem menuItem = sender as MenuItem;
            NoteItem item = (menuItem.DataContext as NoteItem);
        }

 

     最后补充菜单的分隔符

    在Xaml中

        <toolkit:Separator Background="Blue" />

    c#代码中

        ContextMenu contextMenu = ContextMenuService.GetContextMenu(this.rectangle1);
        contextMenu.Items.Add(new Separator());

 

 

 

转载于:https://www.cnblogs.com/bomo/archive/2012/11/04/2754414.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值