Windows Phone 7 技巧三则

简介:

Windows Phone 7开发中涉及到许多技巧,下面就三个小技巧与大家分享,分别如下: 

 1. 设置应用程序的图标
2. Windows Phone 7中的启动画面
3. 设置应用程序的横排显示

 

1. 设置应用程序的图标

右击Wp7应用程序的解决方案,选择属性,设置Icon为自己想要的图片,如下图

并且要确保图片的build方式为Content,如上图。最终的运行效果如下

2. Windows Phone 7中的启动画面

默认情况下,Windows Phone 7 应用程序会使用如下的默认图片作为程序的启动画面,我们可以自己设置Windows Phone 7中的启动画面,可以设置为:1.使用自己的图片作为启动画面 2. 带动画效果的启动画面 3.不使用启动画面

 

对于1,我们只要将SplashScreenImage替换为自己的图片即可。而对于3,如果不想使用启动画面,我们只需将SplashScreenImage图片移出项目即可。下面着重讲一下如果实现动画启动画面.

 这里使用BackgroundWorker类来实现,BackgroundWorker类是开辟一个后台线程来处理一些操作而同时你的UI也能继续响应用户操作的类。更多的关于BackgroundWorker类大家可以Google其用法。在WP7的渲染线程中,如果你想要一个持续响应的用户界面,那么BackgroundWorker类会变得很有用。你可以监听你想要做的操作的进程的事件以及操作完成的信号。我们使用RunWorkerAsync开启后台操作。
注意:我们不应该在BackgroundWorker类的DoWork去操作用户界面。我们可以在ProgressChanged 和RunWorkerCompleted事件中去操作与用户界面相关的操作。关于更多的可以参考MSDN http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker%28VS.95%29.aspx
 

下面开始创建动画的启动动画的步骤
1. 创建WP7项目,并添加名为AnimatedSplashScreen.xaml的用户控件(UserControl)
2. 在MainPage.xaml.cs添加如下的命名空间,并且编辑后置代码如下

using System.Threading;
 

using System.Windows.Controls.Primitives;
 
  1. public partial class MainPage : PhoneApplicationPage  
  2. {  
  3. BackgroundWorker backroungWorker;  
  4. Popup myPopup;  
  5. // Constructor  
  6. public MainPage()  
  7. {  
  8. InitializeComponent();  
  9. myPopup = new Popup() { IsOpen = true, Child = new AnimatedSplashScreen() };  
  10. backroungWorker = new BackgroundWorker();  
  11. RunBackgroundWorker();  
  12.  
  13. }  
  14.  
  15. private void RunBackgroundWorker()  
  16. {  
  17. backroungWorker.DoWork += ((s, args) =>  
  18. {  
  19. Thread.Sleep(5000);   
  20. });  
  21.  
  22. backroungWorker.RunWorkerCompleted += ((s, args) =>  
  23. {  
  24. this.Dispatcher.BeginInvoke(() =>  
  25. {  
  26. this.myPopup.IsOpen = false;  
  27. }  
  28. );  
  29. });  
  30. backroungWorker.RunWorkerAsync();  
  31. }  

3. 编辑AnimatedSplashScreen.xaml前台代码如下

 
  1. <StackPanel x:Name="LayoutRoot" Background="Black" Height="800" Width="480">  
  2. <TextBlock Text="WindowsPhoneGeek Sample Splash Screen" x:Name="text" Foreground="Green" FontSize="65" TextWrapping="Wrap" Margin="0,20,0,0"/>  
  3. <Image Source="logo.png" x:Name="logoImage" Stretch="None" Margin="0,0,0,50">  
  4. <Image.Projection>  
  5. <PlaneProjection/>  
  6. </Image.Projection>  
  7. </Image>  
  8. <toolkit:PerformanceProgressBar IsIndeterminate="True" Foreground="Green"/>  
  9. </StackPanel> 

并且添加如下的动画资源

 
  1. <UserControl.Resources>  
  2. <Storyboard x:Key="flippingAnimation" >  
  3. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationX)" Storyboard.TargetName="logoImage">  
  4. <EasingDoubleKeyFrame KeyTime="0" Value="0"/>  
  5. <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>  
  6. <EasingDoubleKeyFrame KeyTime="0:0:2" Value="360"/>  
  7. </DoubleAnimationUsingKeyFrames>  
  8. <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="text">  
  9. <DiscreteObjectKeyFrame KeyTime="0">  
  10. <DiscreteObjectKeyFrame.Value>  
  11. <SolidColorBrush Color="White"/>  
  12. </DiscreteObjectKeyFrame.Value>  
  13. </DiscreteObjectKeyFrame>  
  14. <DiscreteObjectKeyFrame KeyTime="0:0:2">  
  15. <DiscreteObjectKeyFrame.Value>  
  16. <SolidColorBrush Color="Green"/>  
  17. </DiscreteObjectKeyFrame.Value>  
  18. </DiscreteObjectKeyFrame>  
  19. </ObjectAnimationUsingKeyFrames>  
  20. </Storyboard>  
  21. </UserControl.Resources> 

4. 最后编辑其后置代码如下

 
  1. public AnimatedSplashScreen()  
  2. {  
  3. InitializeComponent();  
  4. Storyboard flippingAnimation = this.Resources["flippingAnimation"as Storyboard;  
  5. flippingAnimation.Begin();  

3. 设置应用程序的Orientations

 Windows Phone 7默认的Orientations是Portrait 的

则切换到横排是如下图

我们可以做如下的修改 ,将SupportedOrientations设为PortaitOrLandscape,如下图

 则再次运行程序,切换到横排时,效果如下图

 





    本文转自xshf12345 51CTO博客,原文链接:http://blog.51cto.com/alexis/574966,如需转载请自行联系原作者


相关文章
|
Android开发 iOS开发 Windows
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
不久前,随着最后一家WP手机厂商惠普宣布取消今后Windows Phone的研发计划,以及微软官方声明对WP8.1系统今后所有升级维护的终止,WP手机,作为曾经和安卓手机、苹果手机并驾齐驱的三大智能手机之一,正式寿终正寝。
1274 0
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
|
XML 开发框架 前端开发
Windows Phone快速入门需掌握哪些能力
在此之前,先普及下Windows Phone的概念和开发工具的介绍。 Windows Phone是微软公司开发的手机操作系统,它将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。
135 0
Windows Phone快速入门需掌握哪些能力
|
编解码 前端开发 JavaScript
Windows Phone 下开发 LBS 应用
基于位置的服务(Location Based Service,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。
164 0
|
移动开发 Android开发 开发者
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
在Build 2014大会上,微软正式发布了传闻已久的Windows Phone 8.1系统,所有的Windows Phone 8手机都可以升级,微软这次可谓是十分厚道。虽然并非迭代升级,但WP 8.1还是拥有很多重大更新,对于微软进一步完善移动平台拥有积极的意义。下面,就一起来了解一下WP 8.1的主要新特性。
233 0
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
|
Windows 数据安全/隐私保护 C#

热门文章

最新文章