前阵子发布了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:绝对定位控件,速度快,可用于游戏
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。
区别:启动器没有返回值,选择器有返回结果 。
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;
20. Windows Phone 7 中常见的页面布局有哪些?
参考答案:
21. 谈谈 HttpWebRequest和WebClient的区别 。
参考答案: 1,HttpWebRequest是个抽象类,所以无法new的,需要调用HttpWebRequest.Create();
22. Windows Phone 7 中的EnableFrameRateCounter 它是作什么用的?
参考答案: 监视程序运行时的帧速率
23. 怎么将模拟器中的键盘输入切换到本机的实体键盘? 模拟器(或者实体机)中弹出的键盘称为SIP,它的全称是什么?
参考答案: 可以使用Pause/Break键,或者Ctrl+PageUp(Page Down)。 全称为Soft Input Panel。
我已经将Windows Phone Tips 系列连同Windows Phone 7问答整理为电子书,下载地址 点我下载