WP7.docx
- 文档编号:10821991
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:17
- 大小:601.37KB
WP7.docx
《WP7.docx》由会员分享,可在线阅读,更多相关《WP7.docx(17页珍藏版)》请在冰点文库上搜索。
WP7
1、环境搭建:
开发WP7手机的应用程序,操作系统必须是window7或者window8。
笔者的操作系统时window7,因此以window7为例讲述环境搭建。
搭建环境其实就是安装两个软件:
MicrosoftVisualStudio2010Express版本和WindowsPhoneEmulator。
这两个软件都可以从网上下载下来,因此不再赘述具体的安装的过程。
但是有一点是需要注意的,当你以前安装过VisualStudio2012或者microsoftNET4.5或者以上的话,需要把这些软件先卸载后才能够安装上。
在这两个应用软件安装上去后,我们针对WindowsPhone的MicrosoftVisualStudio2010Express和WindowsPhoneEmulator编写、测试、部署和调试WindowsPhone应用程序。
2、程序编写:
一)、创建拼图游戏应用程序
1.启动用于WindowsPhone应用程序开发的MicrosoftVisualStudio2010Express。
2.在File菜单,选择NewProject。
3.在NewProject对话框,从安装的模板列表里选择SilverlightforWindowsPhone类别,然后选择WindowsPhone应用程序模板。
把name栏改为WindowsPhonePuzzle,同时把location设为在实验目录下Source文件夹中的Ex1-CreatingWP7Apps。
更改solutionname为Begin,然后点击OK。
项目包含以下项(Item):
项
描述
App.xaml/App.xaml.cs
定义应用程序的入口点,初始化应用程序范围内的资源,,显示应用程序用户界面
MainPage.xaml/MainPage.xaml.cs
定义应用程序中的程序页面(带有用户界面的页面)
ApplicationIcon.png
一种带有图标的图像文件,代表了手机应用程序列表中应用程序的图标
Background.png
一种带有图标的图像文件,代表了在开始页面上应用程序的图表
SplashScreenImage.jpg
这个图片会在应用程序第一次被启动时显示。
启动画面会给用户一个即时的反馈,告诉用户应用程序正在启动直到成功跳转到应用程序的第一个页面。
用户的启动画面可以和应用程序的一个页面设计的非常相似,这样能给使用这一个应用程序被快速加载的感觉。
Properties\AppManifest.xml
一个生成应用程序包所必需的应用程序清单文件
Properties\AssemblyInfo.cs
包含名称和版本的元数据,这些元数据将被嵌入到生成的程序集
Properties\WMAppManifest.xml
一个包含与WindowsPhoneSilverlight应用程序相关的特定元数据的清单文件,且包含了用于WindowsPhone的Silverlight所具有的特定功能
Referencesfolder
一些库文件(集)的列表,为应用程序的工作提供功能和服务。
其中以WindowsPhone应用程序模板为基础的Silverlight所生成Application类,除了对上述事件的句柄外,还包含了对Launching和Closing事件的句柄。
4、新生成的工程项目包含一个缺省的文件,该文件里包含了用来定义应用程序主用户界面的XAML标记。
默认状态下,designer会把这个文件用分隔视图显示。
一个窗口显示XAML标记,另一个窗口显示了所见即所得的用户界面元素设计视图。
模板中显示的是应用程序的名称和标题,除此之外,XAML文件还可提供给您一个空白的类似画布的操作区域。
三.Windowphone开始界面的编写:
1、文本框:
Textblock
使用windowvisualstudio中自带的toolbox工具可以可视化的建立一个文本框,并且可以再手机页面上指定位置,出去了繁琐的编程工作,简单稳定可靠。
大大方便了windowphone手机应用程序的开发:
其中文本框的代码格式是:
编程界面非常友好,很适合理解,上手过程也很快。
2、按键框:
在可触控的手机操作中,按键问题是必须要处理好的问题。
在没有操作体统的平台上,往往写出一个按键的程序都需要调用触摸屏的驱动程序,但是在有操作系统的平台上,我们就只需要调用相应的库函数就可以轻松的实现按键的功能。
在我们这个开发的软件中,同样的,设置一个Button按钮十分简单,这个功能同样是集中在TOOLbox里面,和textblock一样,有一个可视化的界面,达到所见即所得的功能。
上面图片中START3100104428就是一个button按钮,我们可以点击它出发下一个事件。
其中botton按钮的代码格式是:
"BorderBrush="#f8f4df"Foreground="#f8f4df"Name="StartButton"Grid.Row="1"VerticalAlignment="Center"HorizontalAlignment="Center"Click="StartButton_Click"Margin="117,35,97,78"Width="266"/> 从这个代码中可以看出,按钮框里面的文字即content是START3100104428,后面紧跟着定义了这个button位置,属性和颜色,非常重要的一点是它定义了点击这个button出发的事件Click="StartButton_Click"。 其指向的程序代码是: C# privatevoidStartButton_Click(objectsender,RoutedEventArgse) { //navigate this.NavigationService.Navigate(newUri("/PuzzlePage.xaml",UriKind.Relative)); } PhoneApplicationPage类通过它的NavigationService属性提供了切换到其他页面的方法和属性。 可以调用NavigationService的Navigate方法并把页面的URL做为传参。 还可以使用GoBack和GoForward方法在导航历史中向前或向后导航。 硬件设备的后退按键通过应用程序也提供了向后翻页导航的功能。 上面的事件句柄显示了使用NavigationService跳转到PuzzlePage.xaml页面。 3.对于背景图片的定义: 有一个好的背景往往可以有一个很好的操作感受,在windowphone编程过程中对于背景图片的定义和使用也是非常简单的。 在toolbox里面有个image的选项,通过它我们可以很好的指定一个背景 代码格式是: 4、在主程序中加上一些程序必要的设置以后我们就可以编写出我们这个拼图游戏的首页了。 代码如下: PhoneApplicationPage x: Class="WindowsPhonePuzzle.MainPage" xmlns=" xmlns: x=" xmlns: phone="clr-namespace: Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns: shell="clr-namespace: Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns: d=" xmlns: mc="http: //schemas.openxmlformats.org/markup-compatibility/2006" FontFamily="{StaticResourcePhoneFontFamilyNormal}" FontSize="{StaticResourcePhoneFontSizeNormal}" Foreground="{StaticResourcePhoneForegroundBrush}" SupportedOrientations="Portrait"Orientation="Portrait" mc: Ignorable="d"shell: SystemTray.IsVisible="False"Height="800"Width="480"> Name="LayoutRoot"Background="{StaticResourcePhoneBackgroundBrush}"> "BorderBrush="#f8f4df"Foreground="#f8f4df"Name="StartButton"Grid.Row="1"VerticalAlignment="Center"HorizontalAlignment="Center"Click="StartButton_Click"Margin="117,35,97,78"Width="266"/> PhoneApplicationPage> 3、windowphone出错界面的编写 对于一个应用程序而言,其稳定性是十分重要的一个指标,往往在使用中如果因为程序编写不得当,往往可能导致整个手机系统的瘫痪或者重启这对于用户的感受来说是十分不好的。 因此,编写一个出错界面的程序,可以改善这方面的不足。 通过创建一个事件句柄来处理UnhandledException事件。 无论何时当应用程序不能捕捉一个异常的时候,都将触发该事件在句柄程序中,导航切换到一个错误页面并将异常的错误信息传递给该页面。 1.首先,添加一个新的页面到项目工程中。 在SolutionExplorer视图,右键单击WindowsPhonePuzzle工程节点,指向Add并选择NewItem.在AddNewItem对话框,从模板列表里选择WindowsPhonePortraitPage,把name设为ErrorPage.xaml然后点击Add。 1.2、在ErrorPage.xaml文件中,找到名为LayoutRoot的Grid元素,并用下面的蓝色高亮XAML标记代码替换它的子控件。 这个XAML定义了一个应用程序标题和页面标题,两个标题都被命名为error。 它同样定义了一个TextBlock对象并被指定为x: Name="ErrorText"样式,用来保存任何未来异常的错误文本。 a.XAML b. Name="LayoutRoot"Background="Transparent"> c. d. e. f. g. h. --TitlePanelcontainsthenameoftheapplicationandpagetitle--> i. Name="TitlePanel"Grid.Row="0"Margin="24,24,0,12"> j. Name="ApplicationTitle"Text="WINDOWSPHONEPUZZLE"Style="{StaticResourcePhoneTextNormalStyle}"/> k. Name="PageTitle"Text="error"Margin="-3,-8,0,0"Style="{StaticResourcePhoneTextTitle1Style}"/> l. m. --ContentPanel-placeadditionalcontenthere--> n. Name="ContentPanel"Grid.Row="1"> o. p. Name="ErrorText"Style="{StaticResourcePhoneTextSmallStyle}"TextWrapping="Wrap"/> q. r. s. t. 3、在ErrorPag类中。 建立一个Exception对象,当跳转切换到这个页面的时候会自动挂接到ErrorText.Text。 代码格式: publicpartialclassErrorPage: PhoneApplicationPage { publicErrorPage() { InitializeComponent(); } publicstaticExceptionException; //Executeswhentheusernavigatestothispage. protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { ErrorText.Text=Exception.ToString(); } } 控制程序中导入错误页面的代码: privatevoidApplication_UnhandledException(objectsender,ApplicationUnhandledExceptionEventArgse) { if(System.Diagnostics.Debugger.IsAttached) { //Anunhandledexceptionhasoccurred;breakinthedebugger System.Diagnostics.Debugger.Break(); } e.Handled=true; ErrorPage.Exception=e.ExceptionObject; (RootVisualasMicrosoft.Phone.Controls.PhoneApplicationFrame).Source= newUri("/ErrorPage.xaml",UriKind.Relative); } 五.Windowphone拼图界面的编写: 1、拼图界面和开始界面类似,都用的button,textblock等这些控件,其中不同的是运用了较多的boarder控件: 边框(Border)控件是指在另一个对象的周围绘制边框、背景或同时绘制二者。 控件的XAML语法如下: 子控件对象 Border控件通常会是其他控件的一个外观显示的辅助控件,它很少单独使用,一般都是配合其他控件一起来使用,从而展示出其他控件的边框效果。 Border只能包含一个子对象。 如果要在多个对象周围放置一个边框,应将这些对象包装到一个容器对象中,例如StackPanel。 我们可以通过设置Border控件的属性来展现出各种各样的边框效果,比如你可以通过设置CornerRadius属性以将边框的各角改为圆角,并且可以通过设置Padding属性以在Border中定位对象等等. 2、拼图的移动的实现: 我们的拼图游戏是3*3宫格的游戏,其中较大的一个问题是怎么是图片移动,移动的逻辑是什么。 在拼图界面上我们个每一个图片格子上加上了一个函数Storyboard(WinTransition)由它去控制图片的移动,里面用了DoubleAnimationUsingKeyFrames的控件实现了图片移动,代码如下 Name="CommonStates"> 00: 000.1"> 00: 00.25"/> 00: 00.25"/> (此部分代码较长,故不在放在本文档中) 六、控制逻辑实现: 拼图的逻辑实现使用的C#语言编写,包括初始化程序,拼图移位控制程序。 其中初始化程序如下: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Net; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Documents; usingSystem.Windows.Input; usingSystem.Windows.Media; usingSystem.Windows.Media.Animation; usingSystem.Windows.Navigation; usingSystem.Windows.Shapes; usingMicrosoft.Phone.Controls; usingMicrosoft.Phone.Shell; namespaceWindowsPhonePuzzle { publicpartialclassApp: Application { publicPhoneApplicationFrameRootFrame{get;privateset;} publicApp() { UnhandledException+=Application_UnhandledException; InitializeComponent(); InitializePhoneApplication(); } privatevoidApplication_Launching(objectsender,LaunchingEventArgse) {} privatevoidApplication_Activated(objectsender,ActivatedEventArgse) {} privatevoidApplication_Deactivated(objectsender,DeactivatedEventArgse) {} privatevoidApplication_Closing(objectsender,ClosingEventArgse) {} voidRootFrame_NavigationFailed(objectsender,NavigationFailedEventArgse) { if(System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } } privatevoidApplication_UnhandledException(objectsender,ApplicationUnhandledExceptionEventArgse) { if(System.Diagnostics.Debugger.IsAttached) { //Anunhandledexceptionhasoccurred;breakinthedebugger System.Diagnostics.Debugger.Break(); } e.Handled=true; ErrorPage.Exception=e.ExceptionObject; (RootVisualasMicrosoft.Phone.Controls.PhoneApplicationFrame).S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WP7
![提示](https://static.bingdoc.com/images/bang_tan.gif)