现在微软公司的windowsPhone市场份额在逐渐上升了,很高兴,今后这个平台可以与苹果的IOS和谷歌的安卓竞争了,所谓“三国”,自己也买了一部windowsPhone7.5 OS的手机 感觉很棒 以前初识windowsPhone没有真机 现在有了 可以学学这个平台上应用程序的统一规范 希望自己也早日学完windowsPhone的必要知识 也希望自己早日开发出属于自己的应用。
页面
上图简单介绍了页面的组成,
(PhoneApplicationFrame):一个程序中只能有一个Frame,也是最基础的容器,被才称为所有页面的容器,为SystemTray(上面的信号和电池标记)和ApplicationBar(下面的菜单栏)预留了空间
(PhoneApplicationPage):显示格子页面的ApplicationBar 是否显示ApplicationBar室友Page来决定的,也是放置页面内容的容器
核心元素包括一个称为 PhoneApplicationFrame 的顶级容器控件,该控件可托管 PhoneApplicationPage。
特别注意:开发应用程序时必须使用 PhoneApplicationFrame 和 PhoneApplicationPage 类型,而不能使用标准的 Silverlight 框架和页面类型
扩展:
PhoneApplicationFrame这个类在Microsoft.Phone.Controls命名空间下的,该命名空间下面有多达16个类和两个枚举类型,
转向:
SupportedOrientations="Portrait" Orientation="Portrait",默认是Portrait的显示,SupportedOrientations的属性默认是Portrait的 就是说不能够进行横向只支持竖向,
如果要支持横竖向,那把该属性值改为PortraitOrLandscape即可。
shell:SystemTray.IsVisible="True"//是否显示信号和电池
Loaded="PhoneApplicationPage_Loaded"//加载事件
大家注意到没有,如果要横向转动,那么竖向的一些信息就显示到下面去了,这样给用户带来非常不好的体验,
所有需要到后台写一个委托事件,OnOrientationChanged这个委托事件就可以在里面修改布局 让用户有非常不错的体验
跳转:
this.NavigationService.Navigate(new Uri("/PhoneTask.xaml", UriKind.Relative)); 注意后面的必须是相对路径
跳转到PhoneTask页面后 如果我又要跳回来 就是用GoBack()这个方法,注意在没有跳转到新页之前是不能使用GoBack()这个方法的,因为没有在规定的队列中,这样会报错,
传值:
this.NavigationService.Navigate(new Uri("/PhoneTask.xaml?name=aaa", UriKind.Relative));
在另外一页接收值的时候注意:要对该值进行判断是否传进来了
if(this.NavigationContext.QueryString.ContainsKsy("name"))
{
this.textbox1.text=this.NavigationContext.QueryString["name"];
}
ApplicationBar
其实ApplicationBar就是菜单栏, 默认创建的工程页面是把它注释掉的
1 <phone:PhoneApplicationPage.ApplicationBar> 2 <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 3 <shell:ApplicationBarIconButton Click="ApplicationBarIconButton_Click" IconUri="/Images/appbar_button1.png" Text="按鈕 1"/> 4 <shell:ApplicationBarIconButton Click="ApplicationBarIconButton_Click_1" IconUri="/Images/appbar_button2.png" Text="按鈕 2"/> 5 <shell:ApplicationBar.MenuItems> 6 <shell:ApplicationBarMenuItem Text="功能表項目 1" Click="ApplicationBarMenuItem_Click"/> 7 <shell:ApplicationBarMenuItem Text="功能表項目 2" Click="ApplicationBarMenuItem_Click_1"/> 8 </shell:ApplicationBar.MenuItems> 9 </shell:ApplicationBar> 10 </phone:PhoneApplicationPage.ApplicationBar>
需要注意的是ApplicationBarIconButton中的图片有严格的规定的,必须是48*48象素的png图,而且前景色一般是白色的,一个页面最多只能显示4个ApplicationBarIconButton,Icon图片属性 Build Action设置为Content,还有Copy to Output Directory设置为Copy if new或Copy Always吧,另外,ApplicationBarMenuItem是没有二级菜单的。