Windows Phone 7 - 菜单栏 Application Bar

虫虫 发布于 2012/02/21 11:55
阅读 684
收藏 1

一.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);
}

下面是程序截图:

clip_image002clip_image004

四.下载示例代码:

WindowsPhoneApplicationBarDemo.zip

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部