欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Windows Phone 7 Tips (4)

程序员文章站 2022-03-08 16:02:00
1.windows phone 7 中常见的使用webclient代码段:     webclient twitter = new&nbs...

1.windows phone 7 中常见的使用webclient代码段

    webclient twitter = new webclient();

    twitter.downloadstringcompleted += new downloadstringcompletedeventhandler(twitter_downloadstringcompleted);
    twitter.downloadstringasync(
new uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + twitternamebox.text));

2. 在windows phone 7 程序deactivated的时候,我们需要处理程序的持久化数据和瞬态数据。

 a。将持久化数据保存到isolatedstroage

 b。在app.xaml.cs的deactivated事件中处理应用程序瞬态数据,将应用程序瞬态数据保存至phoneapplicationservice.state中

 c。在页面的onnavigatedfrom事件中处理页面瞬态数据,将页面瞬态数据保存至phoneapplicationpage.state中

3. 对于通过webclient获取到的xml数据源 ,我们可以使用linq to xml 方便操作,获取其属性以便绑定

 xelement xmltweets = xelement.parse(e.result);

twitterlist.itemssource = from tweet in xmltweets.descendants("status") select new twitteritem{message = tweet.element("text").value};

4.在使用linq to xml需要注意返回的xml数据有没有含命名空间

这个是从tweet search wp7 项目中截取的部分返回xml数据,注意是返回xml数据中包含命名空间

Windows Phone 7 Tips (4) 

则使用linq to xml 处理数据时也需要加上命名空间,tweet search wp7 项目处理代码如下

Windows Phone 7 Tips (4)

如果返回的数据不包含命名空间,如下图

Windows Phone 7 Tips (4)  

则处理代码如下

 Windows Phone 7 Tips (4)

  5. 在visual studio 默认并没有navigatetoeventhandler的快捷键,我们可以自行定义

Windows Phone 7 Tips (4) 

选择菜单栏--> 工具---> 选项,找到 键盘节点,在搜索框中输入navigatetoeventhandler,会找到editorcontextmenus.xamleditor.navigatetoeventhandler,然后按快捷键ctrl+g+t(当然你可以自行定义),点击assign

Windows Phone 7 Tips (4) 

这样我们就可以使用快捷键ctrl+g+t了,就不需要右击选择转到事件处理,其实我们可以看到快捷键已经添加到右击选项中了

Windows Phone 7 Tips (4) 

 6. windows phone 7 中应用程序设计需要遵循的three red threads: personal、relevant、connected

 7. 在windows phone7中取得屏幕截图(转自http://mxmxm.com)

分享一个取得屏幕截图的代码,但是由于程序不能在后台运行,所以只能通过按钮或者菜单取得截图,然后把图片保存在相册中。
public void capturescreen(object sender, eventargs e)
{
writeablebitmap bmp = new writeablebitmap(480, 800);
bmp.render(app.current.rootvisual, null);
bmp.invalidate();

memorystream stream = new memorystream();
bmp.savejpeg(stream, bmp.pixelwidth, bmp.pixelheight, 0, 80);
stream.seek(0, seekorigin.begin);

medialibrary library = new medialibrary();
string filename = "screenshot_" + datetime.now.tostring("yyyy-mm-dd_hh:mm:ss");
library.savepicture(filename, stream);
stream.close();
}

8. 让我们的phone 7 震动

vibratecontroller vib = vibratecontroller.default;
vib.start(timespan.frommilliseconds(100));

9.  wpf的资源的资源包括静态资源(staticresource)和动态资源(dynamicresource),他们之间的区别是:

静态资源在第一次编译后即确定其对象或值,之后不能对其进行修改。动态资源则是在运行时决定,当运行过程中真正需要时,才到资源目标中查找其值。

 

10. 在windows phone 7中我们只需关注静态资源(staticresource)