zoukankan      html  css  js  c++  java
  • 【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());
  • 相关阅读:
    lr中读写文件操作代码(原创)
    loadrunner中常用函数
    25岁综合焦虑症
    如果我是你的女朋友。。。看到了自己!哈哈
    web_reg_save_param 和关联的使用(原创)
    awk 的使用转自oracle.com
    去掉thinktime查看响应时间的方法
    vi 的使用方法
    ejs include助手没有处理BOM头的解决
    Nodejs, MemCacheD 在实际项目中的使用
  • 原文地址:https://www.cnblogs.com/bomo/p/2754414.html
Copyright © 2011-2022 走看看