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

来源:互联网 发布:网络直复营销理论类型 编辑:程序博客网 时间:2024/05/19 17:09
 

    本文来介绍一下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);
        }

下面是程序截图:

 

四.下载示例代码:

WindowsPhoneApplicationBarDemo.zip

如果大家喜欢我的文章,请点击“分享”,谢谢!

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 拔智齿没拔干净怎么办 蛀牙只剩牙根了怎么办 牙掉的就剩牙根怎么办 蛀牙牙冠都掉了怎么办 拔智齿断了牙根怎么办 牙肉肿痛有脓包怎么办 种植牙到寿命后怎么办 牙齿松动快掉了怎么办 一颗牙齿松动了怎么办 种植牙牙冠掉了怎么办 牙就剩下牙根了怎么办 后面的大牙掉了怎么办 两边大牙都没了怎么办 拔牙把牙根断了怎么办 拔乳牙牙根断了怎么办 拔牙时牙根断了怎么办 孕晚期牙根掉了怎么办 根管治疗后牙裂怎么办 智齿拔断了牙根怎么办 大牙断了牙根还在怎么办 孕妇牙疼的要命怎么办 牙烂了个大窟窿怎么办 牙齿又痒又痛怎么办 大牙就剩牙根了怎么办 蛀牙只剩牙根痛怎么办 带牙冠的牙疼了怎么办 牙龈肉与牙分离怎么办 后槽牙松动还疼怎么办 嘴唇又干又痒怎么办 嘴唇边突然肿了怎么办 大牙齿蛀牙很疼怎么办 蛀牙经常牙疼怎么办呢 小孩牙齿稀疏牙缝大怎么办 7岁牙齿缝隙大怎么办 小孩牙掉了不长怎么办 牙掉了一年不长怎么办 27岁了牙齿不齐怎么办 整个牙床都在痛怎么办 牙神经漏出来了怎么办 孕9个多月牙齿痛怎么办 孕晚期龋齿牙疼怎么办