《PhoneApplicationPage》应用程序栏
一、
1、应用程序栏中图标大小为48*48像素。
2、图标周围的圆圈是由Windows Phone添加的(所以不应在您的图标中包含它)。
3、为了避免盖住圆圈,图标的内容应该出现在图标中心处26*26像素的正方形内。
4、图标应该具有透明的背景并且实际图标应使用白色进行绘制。根据用户所运行的不同主题,会为图标恰当地着色。
二、
位置:(根目录可能因安装位置不同而不同)
三、使用
添加到程序时,要把属性Build Action 改为Content ,将并Copy to Output Directory 改为Copy always。
四、
ApplicationBarMenuItem的Text长度最大值为14~20个字符(Microsoft建议)。
ApplicationBarMenuItem应避免出现五个以上的菜单项,这是为了避免用户通过滚动来浏览菜单列表。
菜单项的文本应始终被转换为小写形式。这也是为了保持Windows Phone中一致的体验。
五、
当应用程序栏的Opacity设置小于1时,程序栏会盖在页面上,允许下面的内容透过其进行呈现。
六、
应用程序栏提供了一个StateChanged事件,可以对其进行处理从而检测菜单项列表是否被显示。您可以希望在现有内容的基础上调整内容的布局或者菜单项。如需添加事件处理程序,只需修改xaml,使其包含当应用程序栏发生状态更改时您想要引发的事件处理程序名称即可:
1 <phone:PhoneApplicationPage.ApplicationBar> 2 <shell:ApplicationBar StateChanged="ApplicationBar_StateChanged" IsVisible="True" Opacity="0" IsMenuEnabled="True" Mode="Minimized"> 3 <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/> 4 <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/> 5 <shell:ApplicationBar.MenuItems> 6 <shell:ApplicationBarMenuItem Text="MenuItem 1"/> 7 <shell:ApplicationBarMenuItem Text="MenuItem 2"/> 8 </shell:ApplicationBar.MenuItems> 9 </shell:ApplicationBar> 10 </phone:PhoneApplicationPage.ApplicationBar>
在这种情况下,需要动态地调整应用程序栏的Opacity,当Menu Items 列表展开时将其值设置为1(即将IsMenuVisible属性设置为true),当Menu Items列表收起时将其恢复为初始值:
1 private double PreviousOpacity { get; set; } 2 private void ApplicationBar_StateChanged(object sender, Microsoft.Phone.Shell.ApplicationBarStateChangedEventArgs e) 3 { 4 var opacity = this.ApplicationBar.Opacity; 5 this.ApplicationBar.Opacity = e.IsMenuVisible ? 1 : PreviousOpacity; 6 this.PreviousOpacity = opacity; 7 }
摘录自《Windows Phone 高级编程》