zoukankan      html  css  js  c++  java
  • Windows Phone 7 开发探索笔记9——菜单栏

    本文来介绍一下Windows Phone中的菜单栏(Application Bar)。

    一.Application Bar

    Windows Phone中的菜单栏最多可以显示4个图标按钮。这些图标会自动地被从左向右添加到菜单栏中。如果还有额外的选项可以通过菜单项来添加,这些菜单项默认是不显示的。只有在点击菜单栏右侧的省略号(或省略号下方的区域)时才会显示出来,在电话屏幕的方向改变时,系统会自动处理菜单栏的方向(包括按钮和菜单项)。

    按钮中的图标应该是48 x 48像素的,其他的尺寸会自动被缩放为48x48的,不过这通常会导致失真。

    二.通过XAML代码创建菜单栏

    在一个新建的Silverlight for Windows Phone项目中,默认的MainPage.xaml文件中有一段被注释掉的代码,这就是与ApplicationBar相关的代码:

    <phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBarIsVisible="True"IsMenuEnabled="True">
    <shell:ApplicationBarIconButtonIconUri="/Images/appbar.add.rest.png"Text="Add"Click="btnAdd_Click"/>
    <shell:ApplicationBarIconButtonIconUri="/Images/appbar.minus.rest.png"Text="Minus"Click="btnMinus_Click"/>
    <shell:ApplicationBar.MenuItems>
    <shell:ApplicationBarMenuItemText="菜单项1"Click="menuItem1_Click"/>
    <shell:ApplicationBarMenuItemText="菜单项2"Click="menuItem2_Click"/>
    </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>

    图中的IconUri并不存在,我们需要自己来添加图标文件,注意图片的Build Action属性应该为Content,然后修改相应的路径即可。关于图标我们可以在本机的X:\\Program Files\\Microsoft SDKs\\Windows Phone\\v7.0\\Icons目录下找到。IsVisible用来控制菜单栏的可见性,IsMenuEnabled用来控制是否弹出菜单项。同时我们还可以为图标按钮和菜单项添加Click事件处理程序。

    三.通过托管代码创建菜单栏

    下面演示通过托管代码创建菜单栏,在程序中引用ApplicationBar类需要添加using Microsoft.Phone.Shell;名称空间。完整代码如下:

    publicMainPage()
    {
    InitializeComponent();

    applicationBar=newApplicationBar();
    applicationBar.IsVisible=true;
    applicationBar.IsMenuEnabled=true;
    ApplicationBarIconButtonbtnAdd=newApplicationBarIconButton(newUri("/Images/appbar.add.rest.png",UriKind.Relative));
    btnAdd.Text="cancel";
    ApplicationBarIconButtonbtnMinus=newApplicationBarIconButton(newUri("/Images/appbar.minus.rest.png",UriKind.Relative));
    btnMinus.Text="close";
    applicationBar.Buttons.Add(btnAdd);
    applicationBar.Buttons.Add(btnMinus);
    ApplicationBarMenuItemmenuItem1=newApplicationBarMenuItem("菜单项1");
    ApplicationBarMenuItemmenuItem2=newApplicationBarMenuItem("菜单项2");
    applicationBar.MenuItems.Add(menuItem1);
    applicationBar.MenuItems.Add(menuItem2);
    btnAdd.Click+=newEventHandler(btnAdd_Click);
    btnMinus.Click+=newEventHandler(btnMinus_Click);
    menuItem1.Click+=newEventHandler(menuItem1_Click);
    menuItem2.Click+=newEventHandler(menuItem2_Click);
    }

    下面是程序截图:



  • 相关阅读:
    基于keepalived双主模型的高可用LVS
    ViewFlipper实现ViewPager的页面切换效果
    C++,Python,Go对照学习-01
    matlab figure 调整大小、字体、线宽
    学术研究 —— 常用结论、说法
    学术研究 —— 常用结论、说法
    OpenGL(十六) 鼠标、键盘交互响应事件
    N+1:创新点的设计
    N+1:创新点的设计
    数学中的物理、几何概念与含义
  • 原文地址:https://www.cnblogs.com/xingchen/p/1971688.html
Copyright © 2011-2022 走看看