WindowsPhone开发:一些小技巧

   2015-06-24 0
核心提示:在本文中,记录了一些Visual Studio 或 Windows Phone开发的小技巧,希望可以加快您的代码开发速度,或者解决您的小难题~善用pro
 在本文中,记录了一些Visual Studio 或 Windows Phone开发的小技巧,希望可以加快您的代码开发速度,或者解决您的小难题~

善用prop创建类

在开发项目时,您是否定义过几十个,甚至更多的类?各种属性,get set和其他私有方法,写起来也是很花时间的,而其中大部分都是重复的输入,很没有效率。幸好在Visual Studio中,您可以使用prop来快速输入代码,减轻您的负担。

在Visual Studio中,在某个类里输入prop,然后回车关闭自动补全,接着按一下TAB,则一个属性就为您创建好了:

在这里,您可以通过TAB键在值类型int和属性名MyProperty之间切换,您可以修改这两个值。修改完毕后,按一下ENTER,则该属性就定义好了,方便又快捷。

另外,您可以按上述方法输入propa和propdp,看看会发生什么:)

ApplicationBar图标

大多数人都知道,在Windows Phone中,ApplicationBar内的图标数量最多不能超过4个,而菜单项则没有限制,但事实上有两个地方经常被人们所忽略:

  • 在图标(ApplicationBarIconButton)的Text属性中定义的大写单词(例如Save)在程序运行时会被自动转换为小写(save),因此没有必要再这里定义大写单词;
  • 图标的IconUri中所指定的图标文件,必须在Visual Studio中将其“生成操作”属性从Resource修改为内容(content),才能正确在运行时显示出来,否则会显示为红叉。

选择Windows Phone Emulator

如果你希望使用模拟器而不是真机来调试应用程序(对于大多数人在项目开发的大多数时期都是如此),记得在调试设备中选择Windows Phone Emulator。之所以提这一点,是因为有时Visual Studio会莫名其妙的选择了Windows Phone Device来作为默认调试设备,当未连接Windows Phone 设备时,会报告一个奇怪的错误,很容易让开发者摸不着头脑。因此,若您按下F5而莫名其妙的失败了,记得检查下调试设备哦~

使用TryGetValue方法来避免异常

在Windows Phone中,QueryString和State是非常有用的,但若不添加异常处理,很容易造成程序崩溃(闪退)。有些有经验的开发者会使用Try Catch来处理这个问题,但它们本身就提供了解决方案,就是TryGetValue方法。该方法定义为:bool TryGetValue(TKey key, out TValue value),若对象含有key所请求的值,则输出值到value中,并return true,否则直接return false。使用TryGetValue,可以使用类似如下的书写方式:

  1. object MyState; 
  2.     if(phoneAppServices.State.TryGetValue("MyState", out MyState)) 
  3.     { 
  4.         //你自己的代码 
  5.     } 

这样代码看起来更加简洁且可读性更强。

使用Canvas来模拟弹出界面

在Windows Phone中,当需要弹出类似登陆或注册这类较复杂的交互窗口时,MessageBox类显然是不够用的。这时,您可以使用Canvas来模拟一个弹出窗口。方法是:

  • 在Page中插入一个Canvas,并将其XAML声明置于所有与它在同一容器控件声明的最下方,以确保其会显示在最上方;
  • 调整Canvas大小和位置,使其正确遮挡下方控件;
  • 将所需的控件(TextBox,Button等)添加在Canvas内;
  • 初始化时,将Canvas的Visibility属性设为Collapse,以隐藏控件;
  • 需要弹出窗口时,将Canvas的Visibility属性设为Visible;
  • 需要关闭弹出窗口时,将Canvas的Visibility属性重新设为Collapse即可。

以上几点是我总结的Windows Phone开发的小技巧,希望对您有用。

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

点击排行