WP7之应用程序栏

系统托盘和应用程序栏

系统托盘

显示系统级别的状态信息

Apps能隐藏和显示系统托盘

通过以下的操作可以设置系统托盘的显示和隐藏

Microsoft.Phone.Shell.System.Tray.IsVsible=true(显示)

Microsoft.Phone.Shell.System.Tray.IsVsible=fasle(隐藏) 

应用程序栏 

应用程序栏是用于显示一些通用操作的区域,可以对通用的功能进行方便的操作,支持弹出菜单显示更多的操作,通用的操作最多支持四个操作,如果多余四个,就可以使用弹出菜单, 

由于Windwos Phone采用全新的Metro风格,所以没有菜单,所以使用ApplicationBar, 不要使用自建的菜单系统; 

使用系统默认的主题颜色(白色前景色和透明背景; 

支持最多4四操作图标,但不是必须4个 

系统提供的图标所在的目录: 

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons,里面包括dark(黑色背景色下的)和light(白色背景色下的)2种类型的图标

使用C#生成应用程序栏 

ApplicationBar不Silverlight控件,不能进行数据绑定,因为它不是继承自Element Framework的类,所以在进行应用程序的全球化和本地化的时候,需要用C#来生成ApplicationBar,

需要引入Microsoft.Phone.Shell这个名字空间,具体生成方法如下: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using Microsoft.Phone.Shell; //使用ApplicationBar需要引入此命名空间

namespace _4PageNavigation
{
public partial class MyAppBar : PhoneApplicationPage
{
public MyAppBar()
{
InitializeComponent();
ApplicationBar.IsVisible = true; //设置可见性
ApplicationBar.IsMenuEnabled = true; //设置是否支持菜单

//创建按钮控件的对象btnMusic
ApplicationBarIconButton btnMusic = new ApplicationBarIconButton(new Uri("/imgs/Music.png",UriKind.Relative));

btnMusic.Text = "Music"; //在正式版中必须要指定Text属性
btnMusic.Click += new EventHandler(btnMusic_Click);

//创建按钮控件的对象btnVedio
ApplicationBarIconButton btnVedio = new ApplicationBarIconButton(new Uri("/imgs/Vedio.png",UriKind.Relative));

btnVedio.Text ="Vedio";
btnVedio.Click+=new EventHandler(btnVedio_Click);
//将创建好的按钮添加到应用程序栏
ApplicationBar.Buttons.Add(btnMusic);

ApplicationBar.Buttons.Add(btnVedio);

//创建菜单控件的对象appBarMenuItemMusic
ApplicationBarMenuItem appBarMenuItemMusic = new ApplicationBarMenuItem("appBarMenuItemMusic");

appBarMenuItemMusic.Text = "Music";
appBarMenuItemMusic.Click+=new EventHandler(appBarMenuItemMusic_Click);
//创建菜单控件的对象appBarMenuItemVedio
ApplicationBarMenuItem appBarMenuItemVedio = new ApplicationBarMenuItem("appBarMenuItemVedio");

appBarMenuItemVedio.Text = "Vedio";
appBarMenuItemVedio.Click+=new EventHandler(appBarMenuItemVedio_Click);
//将创建好的菜单添加到应用程序栏
ApplicationBar.MenuItems.Add(appBarMenuItemMusic);

ApplicationBar.MenuItems.Add(appBarMenuItemVedio);

}
//appBarMenuItemVedio的事件
void appBarMenuItemVedio_Click(object sender, EventArgs e)

{
//throw new NotImplementedException();
//在这里进行相应的操作
PageTitle.Text = "MenuItemVedio";

}
//appBarMenuItemMusic的事件
void appBarMenuItemMusic_Click(object sender, EventArgs e)

{
//throw new NotImplementedException();
//在这里进行相应的操作
PageTitle.Text = "MenuItemMusic";

}
//btnVedio的事件
void btnVedio_Click(object sender, EventArgs e)

{
//throw new NotImplementedException();
//在这里进行相应的操作
PageTitle.Text = "btnVedio";

}
//btnMusic的事件
void btnMusic_Click(object sender, EventArgs e)

{
//throw new NotImplementedException();
//在这里进行相应的操作
PageTitle.Text = "btnMusic";

}
}
}

使用Xaml生成AppBar 

在每个XamlPage页面中都有一个默认的ApplicationBar,只不过MS默认的让其不显示,当我们需要新建立了一个页面之后,如果在该页面上需要使用ApplicationBar,可以直接在该Xaml页面中将其显示出来(取消注释)即可。

 <!--Sample code showing usage of ApplicationBar-->
<!--
属性说明:
IsVisible:可见性
IsMenuEnabled:是否支持菜单
Opacity:透明度
IconUri:按钮的图标
Text:按钮的文本信息
Click:点击事件
-->

<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Opacity="0.5">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Click="btnVedio_Click" Text="btnVedio"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Click="btnMusic_Click" Text="btnMusic"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="appBarMenuItemVedio" Click="appBarMenuItemVedio_Click"/>
<shell:ApplicationBarMenuItem Text="appBarMenuItemMusic" Click="appBarMenuItemMusic_Click"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

使用Expression Blend 生成AppBar

 

使用ExpressionBlend进行ApplicatioBar的设计,在ExpressionBlend中,可以进行ApplicationBar中控件属性的设置,事件的定义,图标的修改等,如下图所示:

应用程序的透明度 

透明度可以设置为0到1的数值,但推荐使用0 、0.5、 1

如果透明度小于1,Application Bar会覆盖原显示区域,但同时能看到原显示区域。如果透明度等于1,ApplicationBar会覆盖原显示区域,但看不到原显示区域

对屏幕方向的支持

Application Bar支持横屏,默认情况下,总是显示在硬件按钮的一方,当翻屏的时候自动显示动画效果(animation)

转载于:https://www.cnblogs.com/kbillows/archive/2012/01/13/2322142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值