Windows Phone 7 问答(答案部分)

前阵子发布了Windows Phone 7 问答 涉及到Windows Phone 中基本的问题,现在把参考答案也贴出来,供大家学习之用。

 1. Windows Phone 7 应用程序的xap包最大为多大 ?

参考答案: 400MB  225MB

2. 怎么设置Windows Phone 7应用程序的ico图标?

参考答案 :右击项目--设置icon属性为自己的图片即可,注意图片生成方式选择content

3. 怎么替换Windows Phone 7中的启动画面?

参考答案: 将SplashScreenImage替换为自己的图片即可,注意图片的分辨率跟原来默认的保持一致

4. 谈谈怎么在Windows Phone 7 中使用别名进行页面的导航。

参考答案: 在App.xaml中配置匹配别名,添加命名空间

xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone" 配置匹配标签如下:
<Application.Resources> <nav:UriMapper x:Name="uriMapper"> <nav:UriMapping Uri="Pan" MappedUri="/PanoramaPage1.xaml"></nav:UriMapping> </nav:UriMapper> </Application.Resources>
然后在其后置代码App.xaml.cs的App()方法中添加如下代码:
this.RootFrame.UriMapper = Resources["uriMapper"] as UriMapper; 然后我们就可以在XAML代码中使用别名来找到具体的页面了
<HyperlinkButton Content="Alexis" Height="30"  Name="hyperlinkButton1"  Width="200" NavigateUri="Pan" />

5. 谈谈Windows Phone 7 中页面的传值方式。

参考答案: 传递页

<HyperlinkButton Content="Alexis" Height="30" Name="hyperlinkButton1"  Width="200"  NavigateUri="/PanoramaPage1.xaml?username=alexis" />
或者使用别名
<HyperlinkButton Content="Alexis" Height="30" Name="hyperlinkButton1"  Width="200" 
NavigateUri="Pan?username=alexis" />
接受页 在Load事件中
if (NavigationContext.QueryString.ContainsKey("username")) { tbUserName.Text = NavigationContext.QueryString["username"].ToString(); }

6. 怎么在Windows Phone 7 中禁用物理回退键?

参考答案: 在PhoneApplicationPage_BackKeyPress中设置e.Cancel = true

7. 怎么在Windows Phone 7 中隐藏和显示系统托盘?

参考答案: 在后置代码中Microsoft.Phone.Shell.SystemTray.IsVisible = true; 或者在XAML中也可以同样可以设置

8. Application Bar最多支持几个图标?

参考答案:4个 

9. 谈谈Windows Phone 7中常见的UI布局控件。

参考答案: Canvas:绝对定位控件,速度快,可用于游戏

Grid:网格定位控件,比较常用
StackPanel:自动定位控件,推荐使用与小区域

10. 谈谈Windows Phone 7中应用程序的生命周期,能不能画张图演示下程序的生命周期?

参考答案: 

11. 知道图片的生成方式为Resource和Content的区别么?

参考答案: 生成方式为Resource的图片会被编译到应用程序集(DLL)里,而生成方式为Content的图片则会被部署到XAP包中

12. 说说当我点击Windows Phone 7 的物理回退键时可能发生的情况。

参考答案: (1). 当你点击回退按钮式,程序必须返回上一个页面

(2). 如果你是在程序的第一个页面点击回退按钮,则应用程序必须推出

(3). 如果你的应用程序真在现实一个对话框或者Context Menu,点击回退按钮时,Windows Phone 7自动关闭对话框或者 Context Menu。

13. 谈谈你知道的启动器、选择器,选择器和启动器有什么区别?

 参考答案:一些内置的启动器:EmailComposeTask、MarketplaceDetailTask、MarketplaceHubTask、MarketplaceReviewTask、MarketplaceSearchTask、MediaPlayerLauncher、PhoneCallTask、SearchTask、SmsComposeTask、WebBrowserTask。

一些内置的选择器:CameraCaptureTask、EmailAddressChooserTask、PhoneNumberChooserTask、PhotoChooserTask、SaveEmailAddressTask、SavePhoneNumberTask

区别:启动器没有返回值,选择器有返回结果 。

14. 什么是墓碑机制(Tombstoning)?为什么要有这个机制?

参考答案 :在Windows Phone中,由于用户离开当前应用程序,操作系统暂停该应用程序,但保存瞬间状态,以便随时恢复。为了保证快速而且一致的用户体验,Windows Phone仅允许唯一的应用程序占用系统资源在前台运行。区别于桌面操作系统,Window Phone不支持应用程序在后台运行。这是为了避免了多个应用程序竞争有限的手机资源,由此避免了的处理速度和电池电量的急速下降。

15. 怎么判断Windows Phone 7中的网络是否可用?

参考答案:NetworkInterface 提供了一个判断当前网络是否可可用的方法GetIsNetworkAvailable。

 if (Microsoft.Phone.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())

{ //网络可用情况下的代码}

else

{ //网络不可用,给以提示}

16. 在Windows Phone 7中WMAppManifest.xml这个文件是做什么用的?

参考答案: 一个包含了应用程序特定数据的元数据文件,包括标题,图标位置,功能等等。

17. 在Windows Phone 7中有几种页面导航方式,具体说说。

参考答案: (1)在XAML代码直接写XAML文件地址,如<HyperlinkButton Content="Pasta" NavigateUri="/Pasta.xaml" Height="30" HorizontalAlignment="Left"

Margin="10,10,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="200" />
(2)在XAML代码中利用别名进行导航,需要在App.xaml中配置
(3)利用事件处理,如 NavigationService.Navigate(new Uri("/Pasta.xaml", UriKind.Relative));

18. Windows Phone 7 中应用程序设计需要遵循的Three Red Threads是什么?

参考答案: Personal、Relevant、Connected(可以略微描述下)

19. 怎么让我们的手机震动?

参考答案: 申明一个VibrateController对象,调用其Start方法

VibrateController vib = VibrateController.Default;

vib.Start(TimeSpan.FromMilliseconds(100));

20. Windows Phone 7 中常见的页面布局有哪些?

参考答案: 

21. 谈谈 HttpWebRequest和WebClient的区别 。

参考答案: 1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Create();

2,其Method指定了请求类型,这里用的GET,还有POST;也可以指定ConentType;
3,其请求的Uri必须是绝对地址;
4,其请求是异步回调方式的,从BeginGetResponse开始,并通过AsyncCallback指定回调方法;
5,WebClient 方式使用基于事件的异步编程模型,在HTTP响应返回时引发的WebClient回调是在UI线程中调用的,因此可用于更新UI元素的属性,例如把 HTTP响应中的数据绑定到UI的指定控件上进行显示。HttpWebRequest是基于后台进程运行的,回调不是UI线程,所以不能直接对UI进行操作,通常使用Dispatcher.BeginInvoke()跟界面进行通讯。

22. Windows Phone 7 中的EnableFrameRateCounter 它是作什么用的?

参考答案: 监视程序运行时的帧速率

23. 怎么将模拟器中的键盘输入切换到本机的实体键盘? 模拟器(或者实体机)中弹出的键盘称为SIP,它的全称是什么?

参考答案:  可以使用Pause/Break键,或者Ctrl+PageUp(Page Down)。 全称为Soft Input Panel。

 

我已经将Windows Phone Tips 系列连同Windows Phone 7问答整理为电子书,下载地址 点我下载 

posted @ 2011-05-15 18:32  Alexis  阅读(2974)  评论(17编辑  收藏  举报