系统托盘和应用程序栏
系统托盘
显示系统级别的状态信息
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)