欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Windows Phone 7 开发探索笔记9——菜单栏

程序员文章站 2022-03-02 14:53:25
本文来介绍一下Windows Phone中的菜单栏(Application Bar)。 一.Application Bar    ...

本文来介绍一下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:ApplicationBar IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar.add.rest.png" Text="Add" Click="btnAdd_Click"/>
            <shell:ApplicationBarIconButton IconUri="/Images/appbar.minus.rest.png" Text="Minus" Click="btnMinus_Click"/>
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="菜单项1" Click="menuItem1_Click"/>
                <shell:ApplicationBarMenuItem Text="菜单项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;名称空间。完整代码如下:

代码
public MainPage()
        {
            InitializeComponent();

            ApplicationBar applicationBar;
            applicationBar = new ApplicationBar();

            this.ApplicationBar = applicationBar;

            applicationBar.IsMenuEnabled = true;
            applicationBar.IsVisible = true;
            ApplicationBarIconButton btnAdd = new ApplicationBarIconButton(new Uri("/Images/appbar.add.rest.png", UriKind.Relative));
            btnAdd.Text = "cancel";
            ApplicationBarIconButton btnMinus = new ApplicationBarIconButton(new Uri("/Images/appbar.minus.rest.png", UriKind.Relative));
            btnMinus.Text = "close";
            applicationBar.Buttons.Add(btnAdd);
            applicationBar.Buttons.Add(btnMinus);
            ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem("菜单项1");
            ApplicationBarMenuItem menuItem2 = new ApplicationBarMenuItem("菜单项2");
            applicationBar.MenuItems.Add(menuItem1);
            applicationBar.MenuItems.Add(menuItem2);
            btnAdd.Click += new EventHandler(btnAdd_Click);
            btnMinus.Click += new EventHandler(btnMinus_Click);
            menuItem1.Click += new EventHandler(menuItem1_Click);
            menuItem2.Click += new EventHandler(menuItem2_Click);
        }
下面是程序截图:

 

Windows Phone 7 开发探索笔记9——菜单栏Windows Phone 7 开发探索笔记9——菜单栏

四.下载示例代码:

 http://up.2cto.com/2011/1012/20111012075913782.zip
 

 

作者:金山崟霸