设为首页 收藏本站
查看: 2585|回复: 0

Windows Phone 7 如何实现应用程序栏

[复制链接]

尚未签到

发表于 2015-5-8 12:54:37 | 显示全部楼层 |阅读模式
      WindowS Phone 7取消了之前的菜单系统,而是通过应用程序栏的形式实现不同程序,功能之间的切换。

      每一个应用程序栏最多支持显示4个应用程序(4个图标)。

      windows phone 应用程序栏(ApplicationBar)有两种添加方式。一种是通过C#代码添加,还有一种是通过XAML生成应用程序栏。

通过C#代码可以实现应用程序栏的国际化(即实现手机不同语言的切换).而通过XAML生成的应用程序栏是不能实现不同语言的切换功能。这是由于ApplicationBar不是Silverlight的控件,所以ApplicationBar不支持数据绑定。任何数据绑定的目标都必须是自继承自FrameWorkElement这个类。因此无法通过数据绑定来实现国际化和本地化。只能通过c#代码生成ApplicationBar,然后实现国际化和本地化的功能。

具体的方法步骤:


1.通过XAML生成应用程序栏

在xaml页面会自动的生成一下代码,默认情况下的这段代码是被注释掉的。





以上这一段表是声明了一个ApplicationBar,并且添加了两个Button按钮和两个MenuItem.所以如果要增加ApplicationBar,只要把以上代码的注释去掉即可。

说明:ApplicationBarIconButton 表示声明的是一个Button,IconUri表示按钮图标所在的路径,Text表示按钮显示的名称

ApplicationBarMenuItem 表示声明的是一个MenuItem(菜单项),Text表示菜单项的名称。

我们将上面的代码修改如下:














此外还可以通过Expression Blend来设计Applicationbar。

运行程序点击(...)会弹出菜单项,如下图所示。

DSC0000.jpg
菜单项视图:

DSC0001.jpg
上图为应用程序栏,我们值放入了2个图标。最多可以放4个。


2.通过C#代码来实现应用程序栏

首先需要添加下面这个命名空间:




using Microsoft.Phone.Shell;
  之后在页面的构造函数中添加如下代码:



ApplicationBar = new ApplicationBar();//声明一个ApplicationBar

ApplicationBar.IsVisible = true;//设置应用程序栏可见
ApplicationBar.IsMenuEnabled = true;//设置菜单项可用

ApplicationBarIconButton button1 = new ApplicationBarIconButton(new Uri("/icons/appbar.feature.video.rest.png", UriKind.Relative));//声明一个Button,并设置其图标路劲。
button1.Text = "Video";//图标显示的名称为Video
button1.Click += new EventHandler(button1_Click);//注册Click事件

ApplicationBarIconButton button2 = new ApplicationBarIconButton(new Uri("/icons/appbar.feature.search.rest.png", UriKind.Relative));
button2.Text = "Search";
button2.Click += new EventHandler(button2_Click);
ApplicationBar.Buttons.Add(button1);//将Button添加到应用程序栏中,这样便可以使用该Button了。
            ApplicationBar.Buttons.Add(button2);
ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem("电子书");//声明一个MenuItem项,并设置显示文字为电子书
ApplicationBarMenuItem menuItem2 = new ApplicationBarMenuItem("音乐");
menuItem1.Click += new EventHandler(menuItem1_Click);//注册MenuItem项的Click事件
menuItem2.Click += new EventHandler(menuItem2_Click);
ApplicationBar.MenuItems.Add(menuItem1);//将MenuItem添加到菜单栏中,这样便可以使用该MenuItem了。
ApplicationBar.MenuItems.Add(menuItem2);
  以上代码添加成功后,还需要实现每一个Button和MenuItem项的Click响应函数,在注册每一个Click事件的时候双击TAB键会自动的添加Click响应函数,如下所示:



  void menuItem2_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("Musics", UriKind.Relative));//这段代码是自己编写的,下同。
        }
void menuItem1_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("Ebook", UriKind.Relative));
}
void button2_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("SurferInternet", UriKind.Relative));
}
void button1_Click(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("Movies", UriKind.Relative));
}
这样便实现了通过C#代码的方式自己添加应用程序栏和菜单栏,并通过增加Click事件实现单击时导航到不同的页面。

最终的视图结果同上。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64989-1-1.html 上篇帖子: Windows Phone 7 .toolbox设计教程 下篇帖子: Windows 7 产品密钥是否安全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表