我的windowsPhone学习(1)

现在微软公司的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是没有二级菜单的。

原文地址:https://www.cnblogs.com/JunXiao/p/2470704.html