<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_金山崟霸</title><subtitle type="text">Windows Phone 7</subtitle><id>http://feed.cnblogs.com/blog/u/43510/rss</id><updated>2011-11-22T10:14:18Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/43510/rss"/><entry><id>http://www.cnblogs.com/porscheyin/archive/2011/11/22/2259298.html</id><title type="text">《Windows Phone 7高级编程》(国内第一本Windows Phone 7译著)</title><summary type="text">当当网：http://bit.ly/tqFm9c China-Pub：http://bit.ly/vlBwE6 卓越：http://bit.ly/w55i4H 京东：http://bit.ly/rxPaZ5 经过长时间的努力，本书终于上市了。向大家推荐本书是因为书中介绍了很多翔实的开发技巧和实战经验，无论您是Windows Phone 7开发的爱好者还是从业者，相信您都可以在书中找到有用的知识。虽然本书基于7.0 SDK进行讲解，但绝大部分内容在7.1中依然适用。译者在翻译的过程中，对不易理解以及版本间有差别的地方都给出了详细的译者注。 完整的介绍请参见这里：《Windows ...</summary><published>2011-11-22T10:07:00Z</published><updated>2011-11-22T10:07:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2011/11/22/2259298.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2011/11/22/2259298.html"/><content type="html">&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201111/20111122180644549.png"&gt;&lt;img style="background-image: none; border-width: 0px; border-style: none; border-color: -moz-use-text-color; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" title="Big1" alt="Big1" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201111/201111221807011241.png" border="0" height="879" width="697" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color: red; font-size: 14pt;"&gt;当当网&lt;/strong&gt;：&lt;a title="http://bit.ly/tqFm9c" href="http://bit.ly/tqFm9c"&gt;http://bit.ly/tqFm9c&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color: red; font-size: 18pt;"&gt;China-Pub&lt;/strong&gt;&lt;span style="font-size: 18pt;"&gt;：&lt;/span&gt;&lt;a title="http://bit.ly/vlBwE6" href="http://bit.ly/vlBwE6"&gt;http://bit.ly/vlBwE6&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong style="color: red; font-size: 14pt;"&gt;卓越&lt;/strong&gt;：&lt;a title="http://bit.ly/w55i4H" href="http://bit.ly/w55i4H"&gt;http://bit.ly/w55i4H&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&lt;span style="color: red; font-size: 18pt;"&gt;京东：&lt;/span&gt;&lt;/strong&gt;&lt;a title="http://bit.ly/rxPaZ5" href="http://bit.ly/rxPaZ5"&gt;http://bit.ly/rxPaZ5&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 14pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 经过长时间的努力，本书终于上市了。向大家推荐本书是因为书中介绍了很多翔实的开发技巧和实战经验，无论您是Windows Phone 7开发的爱好者还是从业者，相信您都可以在书中找到有用的知识。虽然本书基于7.0 SDK进行讲解，但绝大部分内容在7.1中依然适用。译者在翻译的过程中，对不易理解以及版本间有差别的地方都给出了详细的译者注。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-size: 14pt;"&gt; &lt;strong&gt;完整的介绍请参见这里&lt;/strong&gt;：&lt;/span&gt;&lt;span style="font-size: 14pt;"&gt;《&lt;/span&gt;&lt;a href="http://baike.baidu.com/view/6839988.htm"&gt;&lt;span style="font-size: 14pt;"&gt;Windows Phone 7高级编程&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 14pt;"&gt;》&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 14pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 另外，我以最快的速度制作了一份完整的勘误表。因为任何书籍都会有错误，因此一本书的后期维护极为重要。大部分书籍不是没有错误，而是没有勘误，这对读者来说不是好事，所以我用一周时间制作了这份勘误表，以供大家参考。&lt;/span&gt;&lt;strong&gt;&lt;a href="http://files.cnblogs.com/porscheyin/WindowsPhone7%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B-%E5%8B%98%E8%AF%AF%E8%A1%A8.doc"&gt;&lt;span style="color: red; font-size: 14pt;"&gt;勘误表下载&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span style="font-size: 14pt;"&gt;。&lt;/span&gt;&lt;strong&gt;&lt;a href="http://vdisk.weibo.com/s/14Ovb/1320938825"&gt;&lt;span style="color: red; font-size: 14pt;"&gt;源代码下载&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;span style="font-size: 14pt;"&gt;。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/2259298.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2011/11/22/2259298.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2011/04/30/2033346.html</id><title type="text">Windows Phone Developer Tools Offline Documentation 脱机文档下载</title><summary type="text">现在，微软已经提供了Windows Phone 的脱机开发文档（英文），我们可以方便地再本机中查看所有有关Windows Phone开发的内容了。特此与大家分享！快来下载吧！ 下载地址：Windows Phone Developer Tools Offline Documentation</summary><published>2011-04-30T03:51:00Z</published><updated>2011-04-30T03:51:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2011/04/30/2033346.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2011/04/30/2033346.html"/><content type="html">&lt;p&gt;现在，微软已经提供了Windows Phone 的脱机开发文档（英文），我们可以方便地再本机中查看所有有关Windows Phone开发的内容了。特此与大家分享！快来下载吧！&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201104/20110430115047125.png"&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/porscheyin/QQ%E6%88%AA%E5%9B%BE20110430114718.png" height="729" width="862" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong style="color: #ff0000; font-size: 14pt;"&gt;下载地址：&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a522ddd3-a84b-4a95-9a5e-cf988dbf8de7#QuickDetails"&gt;&lt;span style="color: #0000ff;"&gt;Windows Phone Developer Tools Offline Documentation&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/2033346.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2011/04/30/2033346.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2011/01/18/1938349.html</id><title type="text">Windows Phone 7 开发 31 日谈——第26日：与其他开发人员(免费)分享你的程序</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第26日。 昨天，我写了关于如何轻松地使用来自外部的Web服务数据。今天,我来谈谈如何与其他Windows Phone开发人员分享你的应用程序(特别是正在开发中的程序）。 “分享”是什么意思？ 如果你在安装Windows Phone 7开发人员工具时已经都试过了，可能已经注意到一个有趣的小程序，叫做“应用程序部署”（Application Deployment）。该程序用于打开一个XAP文件，并将它部署到模拟器或一个真实的手机（如果你有）中。 我告诉你这个是因为这是一个非常棒的方法，用于告诉别人你正在做什么，并获取他们的反馈，</summary><published>2011-01-18T06:49:00Z</published><updated>2011-01-18T06:49:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2011/01/18/1938349.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2011/01/18/1938349.html"/><content type="html">&lt;p&gt;本文是&lt;strong&gt;&lt;u&gt;&amp;#8220;&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Windows Phone 7 &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;开发&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt; 31 &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;日谈&amp;#8221;&lt;/u&gt;&lt;/strong&gt;系列的第26日。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;昨天，我写了关于如何轻松地使用来自外部的Web服务数据。今天,我来谈谈如何与其他Windows Phone开发人员分享你的应用程序(特别是正在开发中的程序）。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;&lt;/strong&gt;&lt;strong style="font-size: 12pt;"&gt;&amp;#8220;分享&amp;#8221;是什么意思？&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你在安装Windows Phone 7开发人员工具时已经都试过了，可能已经注意到一个有趣的小程序，叫做&amp;#8220;应用程序部署&amp;#8221;（Application Deployment）。该程序用于打开一个XAP文件，并将它部署到模拟器或一个真实的手机（如果你有）中。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/201101181449037031.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/201101181449059181.png" border="0" height="569" width="491" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;我告诉你这个是因为这是一个非常棒的方法，用于告诉别人你正在做什么，并获取他们的反馈，抑或只是展示某个特定的功能，而无需与别人共享你的屏幕。最棒的是&amp;#8212;&amp;#8212;这是免费的。这就像是你所信任的人提供的一个有限制的测试版程序（这将在本文后面的关键。）&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 12pt;"&gt;到底如何免费？&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;如果你还记得，下载和安装Windows Phone的工具和SDK都是免费的。无需花费分文。&lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;你可以去这里下载工具和SDK&lt;/a&gt;。使用这些工具以及附带的Application Deployment程序，可以生成并与做相同工作的人分享你的应用程序。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 12pt;"&gt;该程序如何是工作的？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;做起来是如此地简单。打开程序，从你的电脑中选择XAP文件并告诉它部署到（还是免费的）模拟器还是实际的设备（如果你有的话。）看起来应该像下面这样：&lt;/p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/201101181449067295.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image002" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/201101181449076347.png" border="0" height="451" width="501" /&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong style="font-size: 12pt;"&gt;我的XAP文件在哪儿呢？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;一旦生成并测试应用程序后，你可以在项目的Debug/bin目录下找到应用程序的 XAP文件，这是我的一个项目的截图：&lt;/p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/201101181449088606.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image003" alt="clip_image003" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201101/20110118144909657.png" border="0" height="376" width="661" /&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong style="font-size: 12pt;"&gt;是的，你可以分享它，但要小心&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 记住，为了让其他人可以运行你的应用程序（而无需从软件市场中购买)，要给他们XAP文件，并让他们使用此工具。不过，这意味着是你给他们的文件是你最终要上传到App Hub中并出售的。不要将此文件给你不信任的人。你肯定不想让自己处于谁是应用程序创建者以及为什么不是你将程序提交到软件市场的争论中。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是一篇短文，但我认为非常值得一提。能够让朋友来测试你的应用程序是一个巨大的飞跃，可以确保你的应用程序能吸引更多的用户，同时可以处理自己没有预料到的错误。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 明天，我们将专门讲解软件市场，如何在那里获取到你的应用程序，以及应用程序可能会遇到的问题。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-26-Sharing-Your-App-With-Other-Developers-%28For-Free%29.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-26-Sharing-Your-App-With-Other-Developers-%28For-Free%29.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1938349.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2011/01/18/1938349.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915370.html</id><title type="text">Windows Phone 7 开发 31 日谈——第25日：外部API</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第25日。 昨天我写了如何在你的应用程序中嵌入字体,视频和图片。今天，我们来讨论从Web Service中获取数据，并将它们填入到你的应用程序中。 介绍Twitter API 如果你之前没有玩儿过这个，那你肯定会常听我将一个Twitter应用程序比喻为“Hello, world!”程序。原因很简单，因为几乎每一个应用程序都需要连接...</summary><published>2010-12-23T15:15:00Z</published><updated>2010-12-23T15:15:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915370.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915370.html"/><content type="html">&lt;p&gt;本文是&lt;strong&gt;&lt;u&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;系列的第25日。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;昨天我写了如何在你的应用程序中嵌入字体,视频和图片。今天，我们来讨论从Web Service中获取数据，并将它们填入到你的应用程序中。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;介绍Twitter API&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你之前没有玩儿过这个，那你肯定会常听我将一个Twitter应用程序比喻为&amp;#8220;Hello, world!&amp;#8221;程序。原因很简单，因为几乎每一个应用程序都需要连接Web Service，Twitter的API用起来非常简单，并且是免费的，不需要任何注册。换句话说，你可以无障碍地介入，这是学习新技术的一种好方法。&lt;/p&gt;    &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有关Twitter API的关键内容可以在这里找到：&lt;u&gt;&lt;a href="http://dev.twitter.com/"&gt;http://dev.twitter.com/&lt;/a&gt;&lt;/u&gt;。我们来看看用户时间线元素的API，利用这个指定的URL模板：&lt;a href="http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=jeffblankenburg"&gt;http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=jeffblankenburg&lt;/a&gt;。这里的用户名，jeffblankenburg ，可以用任意的Twitter用户名替换。如果点击我给你提供的URL，你会看到很多XML文档。这个文档包含了我最近的Twitter信息，以及大量的元数据。以下是这个文档中的一个节点：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('f92c71ee-5b33-4504-b0cf-760e13ed1f54')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_f92c71ee-5b33-4504-b0cf-760e13ed1f54" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_f92c71ee-5b33-4504-b0cf-760e13ed1f54" onclick="cnblogs_code_hide('f92c71ee-5b33-4504-b0cf-760e13ed1f54',event)"&gt;&lt;div id="cnblogs_code_open_f92c71ee-5b33-4504-b0cf-760e13ed1f54"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;status&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;created_at&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Sun&amp;nbsp;Oct&amp;nbsp;24&amp;nbsp;13:30:04&amp;nbsp;+0000&amp;nbsp;2010&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;created_at&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;28594986565&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Day&amp;nbsp;#24:&amp;nbsp;Embedding&amp;nbsp;Fonts&amp;nbsp;in&amp;nbsp;Windows&amp;nbsp;Phone&amp;nbsp;7&amp;nbsp;http://bit.ly/wp7day24&amp;nbsp;#wp7&amp;nbsp;#wp7dev&amp;nbsp;#31daysofwp7&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://www.tweetdeck.com"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;rel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="nofollow"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;TweetDeck&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;source&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;truncated&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;truncated&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;favorited&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;favorited&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;in_reply_to_status_id&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;in_reply_to_user_id&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;in_reply_to_screen_name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;retweet_count&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;retweeted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;retweeted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;5688882&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Jeff&amp;nbsp;Blankenburg&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;screen_name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;jeffblankenburg&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;screen_name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;location&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Columbus,&amp;nbsp;OH&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;location&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;I'm&amp;nbsp;a&amp;nbsp;passionate&amp;nbsp;technologist,&amp;nbsp;husband,&amp;nbsp;and&amp;nbsp;father&amp;nbsp;in&amp;nbsp;Columbus,&amp;nbsp;OH.&amp;nbsp;I&amp;nbsp;work&amp;nbsp;for&amp;nbsp;a&amp;nbsp;small&amp;nbsp;software&amp;nbsp;company&amp;nbsp;located&amp;nbsp;in&amp;nbsp;Redmond,&amp;nbsp;WA.&amp;nbsp;#wp7&amp;nbsp;http://blankensoft.com&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_image_url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://a3.twimg.com/profile_images/396764567/jeffblankenburgheadshot_normal.jpg&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_image_url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://www.jeffblankenburg.com&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;protected&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;protected&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;followers_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1962&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;followers_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;131516&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_text_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;333333&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_text_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_link_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;994700&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_link_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_sidebar_fill_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;cccccc&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_sidebar_fill_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_sidebar_border_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;999999&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_sidebar_border_color&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;friends_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;652&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;friends_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;created_at&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Tue&amp;nbsp;May&amp;nbsp;01&amp;nbsp;15:54:53&amp;nbsp;+0000&amp;nbsp;2007&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;created_at&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;favourites_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;201&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;favourites_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;utc_offset&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-18000&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;utc_offset&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;time_zone&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Eastern&amp;nbsp;Time&amp;nbsp;(US&amp;nbsp;&amp;amp;&amp;nbsp;Canada)&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;time_zone&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_image_url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;http://s.twimg.com/a/1287010001/images/themes/theme14/bg.gif&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_image_url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_tile&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;true&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_background_tile&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_use_background_image&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;true&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;profile_use_background_image&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;notifications&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;notifications&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;geo_enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;true&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;geo_enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;verified&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;verified&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;following&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;true&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;following&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;statuses_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;5664&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;statuses_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;lang&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;en&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;lang&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;contributors_enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;contributors_enabled&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;follow_request_sent&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;follow_request_sent&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;listed_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;151&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;listed_count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;show_all_inline_media&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;show_all_inline_media&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;user&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;geo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;coordinates&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;place&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;contributors&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;status&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;对于上面的内容要记住的是这仅仅是XML，没有什么神秘的，也没神秘特别的。网络中大多数Web Service都提供了XML源，一般来说，我们可以以一种统一的方式来处理它们。  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;将XML数据从网络中获取到我们的应用程序&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从手机中正在运行的应用程序上在线获取XML数据非常简单（只需3行！）。最重要的是要由你来检测用户是否已经获取到了连接。下面是一种非常简单的方法，使用Microsoft.Phone.Net.NetworkInformation程序集：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(NetworkInterface.GetIsNetworkAvailable())&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;在这个循环中，我们要创建一个WebClient对象，并异步调用我刚刚给你的地址中的Twitter API。首先，我为数据检索完成后创建了一个事件处理程序，然后发起异步调用。（在这个例子中，你会看到我用了一个文本框中来获取用户输入的用户名）&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('efb6ab60-a2e0-4c40-8633-1c7b47bbf6d7')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_efb6ab60-a2e0-4c40-8633-1c7b47bbf6d7" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_efb6ab60-a2e0-4c40-8633-1c7b47bbf6d7" onclick="cnblogs_code_hide('efb6ab60-a2e0-4c40-8633-1c7b47bbf6d7',event)"&gt;&lt;div id="cnblogs_code_open_efb6ab60-a2e0-4c40-8633-1c7b47bbf6d7"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(NetworkInterface.GetIsNetworkAvailable())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WebClient&amp;nbsp;twitter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;WebClient();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;twitter.DownloadStringCompleted&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;twitter.DownloadStringAsync(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Uri(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TwitterNameBox.Text));&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;当返回数据时，事件处理程序会被调用，此时我们需要添加一些内容。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;在应用程序中使用XML&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当我们程序中获取到了数据时，就要真正地在屏幕上显示它们了。在我的其他例子中，我展示了如何将一个值绑定到XAML控件上。但本文重点不在此（虽然下面的示例代码中包含这些内容），相反，我们来看看如何用LINQ来解析XML数据。&lt;/p&gt;  &lt;p&gt;为此，需要引入另一个名称空间，System.Xml.Linq。把它加入后，数据就变的非常简单了。我们需要一个新的XElement对象来保存XML数据。&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;XElement&amp;nbsp;xmlTweets&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;XElement.Parse(e.Result);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;一旦xmlTweets中保存了我们的数据，剩下要做的就是将它绑定到一个ListBox中，并使用LINQ从这些数据中创建自定义的TwitterItem对象。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;TwitterList.ItemsSource&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;from&amp;nbsp;tweet&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;xmlTweets.Descendants(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;status&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&amp;nbsp;select&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;TwitterItem{message&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;tweet.Element(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;).Value};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;你会看到在下面的示例代码中，我自定义的TwitterItem类中包含一个&amp;#8220;message&amp;#8221;属性。&lt;/p&gt;  &lt;p&gt;就是这样！我们从XML源中实时抓取数据，然后再程序中处理它们，最后将它们显示在ListBox中。至于完整的示例，参见下面的代码：&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;这是一个完全可以运行的（但肯定不是包含所有功能的）Twitter客户端。你可以在文本框中输入一个用户名，然后程序就会连接Twitter API，抓取数据，解析并在程序中显示。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day25"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232314204756.png" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-25-Talking-To-External-APIs.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-25-Talking-To-External-APIs.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1915370.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915370.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915348.html</id><title type="text">Windows Phone 7 开发 31 日谈——第24日：嵌入字体</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第24日。 昨天，我说了如何为你的程序添加试用版本。这是一个可以让你卖更多程序的极有价值的特性。今天，我要讲如何在程序中嵌入字体。 首先，要够小 对于为移动设备构建的所有应用程序，你都应该记住数据一定不是“免费”的。你的用户有一个每月只能传输5GB的数据计划。其次，还有一个限制，就是通过数据计划能获取到的应用程序的大小：20MB。...</summary><published>2010-12-23T14:50:00Z</published><updated>2010-12-23T14:50:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915348.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915348.html"/><content type="html">&lt;p&gt;本文是&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;系列的第24日。&lt;/p&gt;  &lt;p&gt;昨天，我说了如何为你的程序添加试用版本。这是一个可以让你卖更多程序的极有价值的特性。今天，我要讲如何在程序中嵌入字体。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;首先，要够小&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于为移动设备构建的所有应用程序，你都应该记住数据一定不是&amp;#8220;免费&amp;#8221;的。你的用户有一个每月只能传输5GB的数据计划。其次，还有一个限制，就是通过数据计划能获取到的应用程序的大小：20MB。如果你的应用程序大于20MB，用户就不得不使用Wi-Fi或通过电脑来进行同步。这些都会对你卖出更多份程序的拷贝不利。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 说了这些，不要用你&amp;#8220;可能&amp;#8221;会需要的数据，字体，图像，视频等等内容来填充你的应用程序。将它们降低到最小值，并且如果你以后能在线获得这些额外的内容，那么考虑一下这么做吧。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;在Windows Phone 7中嵌入字体&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;我被问的最多的一个问题是如何在WP7程序中使用自定义的字体而非已经存在的。下面是已有字体的列表，如果你不去指定FontFamily那么默认为Segoe WP：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250171882.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250196700.png" border="0" height="668" width="267" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在你的应用程序中添加另一种字体，非常简单但并不是很明显。首先你需要找到一个要用的字体。我建议使用&lt;a href="http://dafont.com/"&gt;DaFont.com&lt;/a&gt;或&lt;a href="http://1001freefonts.com/"&gt;1001FreeFonts.com&lt;/a&gt;，不过还有很多地址可以提供免费的，可再分发的字体。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是一个很重要的词。可再分发（REDISTRIBUTABLE）。请确保你只包含了允许被再分发的字体。很多情况下，你可能需要为版权付费。你要确保在开始为程序添加字体前已经自查过了。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 好了，现在我们已经有一个可以打包并分发的字体了，下面是如何将它嵌入到我们的程序中。第一步先将它添加到项目中。我通常喜欢创建一个&amp;#8220;fonts&amp;#8221;文件夹来存放我的字体，但这不是必须的。下面是我的解决方案管理器的截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223225019779.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image002" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250215564.png" border="0" height="583" width="479" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;要恰当地使用这个文件需要注意的是我们要为这个文件的Build Action赋值。如果你对Build Action不熟悉，在解决方案管理器中点击你的字体，然后查看属性面板。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250224418.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image003" alt="clip_image003" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250238746.png" border="0" height="491" width="446" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;我们需要手动修改两个值，否则这个字体不能工作。第一就是Build Action。你要将它改为&amp;#8220;Content&amp;#8221;。第二个是Copy To Output Directory，将它改为&amp;#8220;Copy if newer&amp;#8221;。现在我的属性面板看起来是这样的：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250232825.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image004" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250259105.png" border="0" height="496" width="451" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;现在，真正要使用这个字体了，对吗？为了做到这一点需要在FontFamily属性上用点儿简单的XAML语法。像这样：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="12:02&amp;nbsp;AM"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontFamily&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="fonts/DigitalDream.ttf#Digital&amp;nbsp;Dream"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="60"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;正如你所见，我需要指定字体文件，并在它后面跟一个#符号和字体的真实名称。在我的例子中，它们是一样的。如果你想确认一下你是对的，在你的电脑中打开字体文件，应该能看到像下面一样的窗体：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250263433.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image006" alt="clip_image006" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223225028759.jpg" border="0" height="434" width="634" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;字体的名称列在了顶部。如果你语法写对了，就会看到效果，因为Visual Studio 2010的设计界面是可以立即改变的。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你想看看这个可以作用的嵌入字体的例子，把它下载下来并打开解决方案。它非常简单，但这是让你的程序能有另一种感观的好方法。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day24"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image007" alt="clip_image007" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232250286790.png" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-24-Embedding-Fonts.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-24-Embedding-Fonts.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1915348.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915348.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915308.html</id><title type="text">Windows Phone 7 开发 31 日谈——第23日：提供试用版应用程序</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第23日。 昨天，我写了如何将游戏添加到电话的游戏中心中。今天，我会向你展示为应用程序添加试用内容是多么简单。例如，假设你创建了一个50关的游戏。可能你想让用户能免费体验前5关，但要想玩后面的，他们就需要购买这个游戏。本文就像你展示如何做到。 使用LicenseInformation类 通过向我们的页面中添加Microsoft.P...</summary><published>2010-12-23T13:49:00Z</published><updated>2010-12-23T13:49:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915308.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915308.html"/><content type="html">&lt;p&gt;本文是&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;系列的第23日。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 昨天，我写了如何将游戏添加到电话的游戏中心中。今天，我会向你展示为应用程序添加试用内容是多么简单。例如，假设你创建了一个50关的游戏。可能你想让用户能免费体验前5关，但要想玩后面的，他们就需要购买这个游戏。本文就像你展示如何做到。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;使用LicenseInformation类&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;通过向我们的页面中添加Microsoft.Phone.Marketplace程序集和相应的名称空间，就可以访问LicenseInformation类了，它直接与程序的&amp;#8220;付费&amp;#8221;状态相关。&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Microsoft.Phone.Marketplace;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;下一步是真正地使用LicenseInformation类，来创建一个实例：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;LicenseInformation&amp;nbsp;li&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;LicenseInformation();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;最后，LicenseInformation有一个非常棒的返回布尔值的方法叫IsTrial()，毫无悬念，它允许我们检测程序是否处于试用状态。你可以很方便地将它用于一个if语句，就像这样：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;li.IsTrial())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Do&amp;nbsp;something&amp;nbsp;that&amp;nbsp;only&amp;nbsp;paid&amp;nbsp;users&amp;nbsp;can&amp;nbsp;do.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Do&amp;nbsp;something&amp;nbsp;that&amp;nbsp;all&amp;nbsp;users,&amp;nbsp;trial&amp;nbsp;or&amp;nbsp;paid,&amp;nbsp;can&amp;nbsp;do.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;strong style="font-size: 14pt;"&gt;测试试用模式&lt;/strong&gt;&lt;span style="font-size: 14pt;"&gt;  &lt;/span&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不幸的是，没有一种用来在试用和已付款状态间切换的内建机制。不过这处理起来很简单。我使用了在App.xaml.cs文件中相同的if语句。用它来检测你是否在调试，如果是，创建一个被我叫做&amp;#8220;trialMode&amp;#8221;的IsolatedStorageSetting。&lt;/p&gt;  &lt;p&gt;下面是整个App()方法，包括App.xaml.cs文件自动生成的代码。在下面的例子中，我将trialMode设为了TRUE。当你测试&amp;#8220;已付费&amp;#8221;模式时要将它关闭。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('3e1591bf-8580-4ec0-a203-da983a752272')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_3e1591bf-8580-4ec0-a203-da983a752272" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_3e1591bf-8580-4ec0-a203-da983a752272" onclick="cnblogs_code_hide('3e1591bf-8580-4ec0-a203-da983a752272',event)"&gt;&lt;div id="cnblogs_code_open_3e1591bf-8580-4ec0-a203-da983a752272"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;IsolatedStorageSettings&amp;nbsp;settings&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IsolatedStorageSettings.ApplicationSettings;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;App()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Global&amp;nbsp;handler&amp;nbsp;for&amp;nbsp;uncaught&amp;nbsp;exceptions.&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UnhandledException&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Application_UnhandledException;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;trialMode&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Show&amp;nbsp;graphics&amp;nbsp;profiling&amp;nbsp;information&amp;nbsp;while&amp;nbsp;debugging.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(System.Diagnostics.Debugger.IsAttached)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;trialMode&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Display&amp;nbsp;the&amp;nbsp;current&amp;nbsp;frame&amp;nbsp;rate&amp;nbsp;counters.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.Current.Host.Settings.EnableFrameRateCounter&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Show&amp;nbsp;the&amp;nbsp;areas&amp;nbsp;of&amp;nbsp;the&amp;nbsp;app&amp;nbsp;that&amp;nbsp;are&amp;nbsp;being&amp;nbsp;redrawn&amp;nbsp;in&amp;nbsp;each&amp;nbsp;frame.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Application.Current.Host.Settings.EnableRedrawRegions&amp;nbsp;=&amp;nbsp;true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Enable&amp;nbsp;non-production&amp;nbsp;analysis&amp;nbsp;visualization&amp;nbsp;mode,&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;which&amp;nbsp;shows&amp;nbsp;areas&amp;nbsp;of&amp;nbsp;a&amp;nbsp;page&amp;nbsp;that&amp;nbsp;are&amp;nbsp;being&amp;nbsp;GPU&amp;nbsp;accelerated&amp;nbsp;with&amp;nbsp;a&amp;nbsp;colored&amp;nbsp;overlay.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Application.Current.Host.Settings.EnableCacheVisualization&amp;nbsp;=&amp;nbsp;true;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Standard&amp;nbsp;Silverlight&amp;nbsp;initialization&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Phone-specific&amp;nbsp;initialization&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializePhoneApplication();&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;回顾一下早先的代码，我需要修改if语句来处理这个新的IsolatedStorageSettings值。这次我包含了整个MainPage.xaml.cs文件，所以结合上下文你可以看到所有的内容。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('2fba646a-3b02-4329-a0c0-a9a249b453c9')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_2fba646a-3b02-4329-a0c0-a9a249b453c9" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_2fba646a-3b02-4329-a0c0-a9a249b453c9" onclick="cnblogs_code_hide('2fba646a-3b02-4329-a0c0-a9a249b453c9',event)"&gt;&lt;div id="cnblogs_code_open_2fba646a-3b02-4329-a0c0-a9a249b453c9"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Net;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Controls;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Documents;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Input;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Media;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Media.Animation;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.Windows.Shapes;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Microsoft.Phone.Controls;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Microsoft.Phone.Marketplace;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;System.IO.IsolatedStorage;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Day23_UsingTrial&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;partial&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MainPage&amp;nbsp;:&amp;nbsp;PhoneApplicationPage&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LicenseInformation&amp;nbsp;li&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;LicenseInformation();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IsolatedStorageSettings&amp;nbsp;settings&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IsolatedStorageSettings.ApplicationSettings;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Constructor&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MainPage()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;li.IsTrial()&lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;)settings[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;trialMode&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Do&amp;nbsp;something&amp;nbsp;that&amp;nbsp;only&amp;nbsp;paid&amp;nbsp;users&amp;nbsp;can&amp;nbsp;do.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(li.IsTrial()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;)settings[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;trialMode&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Do&amp;nbsp;something&amp;nbsp;that&amp;nbsp;all&amp;nbsp;users,&amp;nbsp;trial&amp;nbsp;or&amp;nbsp;paid,&amp;nbsp;can&amp;nbsp;do.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;这就是所有你需要做的，当然这并不是&amp;#8220;最好的&amp;#8221;处理这种问题的方法，但对我来说它的确可以工作。如果谁有什么好的方法，我很乐意去用。  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;通过一个可以运行的例子来看以上所有内容，下载这个解决方案并研究它。这始终是学习的一个好方法。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day23"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012232148509966.png" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-23-Providing-Trial-Versions-of-Your-App.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-23-Providing-Trial-Versions-of-Your-App.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt;&lt;div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1915308.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915308.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915231.html</id><title type="text">Windows Phone 7 开发 31 日谈——第22日：应用？还是 游戏？</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第22日。 昨天，我发了一篇极长的关于Silverlight Toolkit for Windows Phone的文章。今天的会短一些，但却非常珍贵。我会讨论你的应用程序设置中非常细微但很重要的设置：类别（Genre）。 如果你创建过一个默认的Windows Phone应用程序（或一个默认的XNA应用程序），并将它部署到模拟器中，你...</summary><published>2010-12-23T11:46:00Z</published><updated>2010-12-23T11:46:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915231.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915231.html"/><content type="html">&lt;p&gt;本文是&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;系列的第22日。&lt;/p&gt;  &lt;p&gt;昨天，我发了一篇极长的关于Silverlight Toolkit for Windows Phone的文章。今天的会短一些，但却非常珍贵。我会讨论你的应用程序设置中非常细微但很重要的设置：类别（Genre）。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你创建过一个默认的Windows Phone应用程序（或一个默认的XNA应用程序），并将它部署到模拟器中，你可能会发现它会出现在应用程序列表中（就是当你在起始界面点击右上角箭头时出现的列表）。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你用过真实的WP7设备，你很可能会发现所有的游戏都出现在游戏中心（Games Hub）中。要做到这一点有一个很简单的方法，但你在模拟器中操作时你的应用程序好像&amp;#8220;消失&amp;#8221;了。记住你只能在程序确实是一个游戏时才能这么做。如果你没有说实话那么很有可能会被&lt;a href="http://create.msdn.com/"&gt;App Hub&lt;/a&gt;拒绝。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;还记得第1日吗？&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在这个系列的第1日中，我讲解了一个Silverlight for Windows Phone应用程序中的每一个文件。想要做出一些小改变，我们所需的就是打开WMAppManifest.xml文档。在Visual Studio 2010的解决方案管理器中可以找到它。它在属性文件夹中。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在此文件内，你可以找到关于应用程序的大量元数据。像应用程序图标，应用程序名以及需要加载的默认页面等内容的名称/路径信息。&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 另外，更改DefaultTask的NavigationPage属性是一种使手动测试UI更快捷的方法。在那个节点中更改页面的名称，你的应用程序就会加载另一个页面。下面是例子：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Tasks&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DefaultTask&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="_default"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;NavigationPage&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductPage.xaml?id=42"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Tasks&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;好了，回到手边的事&amp;#8230;&amp;#8230;让我们的应用程序出现在游戏中心而不是像电话中的其他应用程序一样。要做到这点，我们需要修改App节点的Genre属性。下面是默认的样子(我略微调整了Genre的顺序)：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('8858f7dc-dbb5-4a82-8d6d-4b70d9bbf009')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_8858f7dc-dbb5-4a82-8d6d-4b70d9bbf009" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_8858f7dc-dbb5-4a82-8d6d-4b70d9bbf009" onclick="cnblogs_code_hide('8858f7dc-dbb5-4a82-8d6d-4b70d9bbf009',event)"&gt;&lt;div id="cnblogs_code_open_8858f7dc-dbb5-4a82-8d6d-4b70d9bbf009"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;App&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Genre&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="apps.normal"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ProductID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{8743bc4b-a909-4512-aab9-8633d93a5b04}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Day22_AppsVsGames"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;RuntimeType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Silverlight"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Version&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1.0.0.0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Author&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Jeff&amp;nbsp;Blankenburg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="An&amp;nbsp;amazing&amp;nbsp;demo&amp;nbsp;on&amp;nbsp;how&amp;nbsp;to&amp;nbsp;change&amp;nbsp;your&amp;nbsp;app's&amp;nbsp;location."&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Publisher&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Blankensoft"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;你可以看到Genre的默认值是&amp;#8220;apps.normal&amp;#8221;。将它改为&amp;#8220;apps.games&amp;#8221;然后你会看到你的程序从模拟器中消失了（它并没有真正消失，只是你在模拟器中看不到游戏中心而已）。下面是我修改后的例子：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('aa7b1c40-47e4-4bc6-82a8-85c484d5e7f9')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_aa7b1c40-47e4-4bc6-82a8-85c484d5e7f9" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_aa7b1c40-47e4-4bc6-82a8-85c484d5e7f9" onclick="cnblogs_code_hide('aa7b1c40-47e4-4bc6-82a8-85c484d5e7f9',event)"&gt;&lt;div id="cnblogs_code_open_aa7b1c40-47e4-4bc6-82a8-85c484d5e7f9"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;App&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Genre&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="apps.games"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;ProductID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{8743bc4b-a909-4512-aab9-8633d93a5b04}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Day22_AppsVsGames"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;RuntimeType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Silverlight"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Version&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1.0.0.0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Author&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Jeff&amp;nbsp;Blankenburg"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="An&amp;nbsp;amazing&amp;nbsp;demo&amp;nbsp;on&amp;nbsp;how&amp;nbsp;to&amp;nbsp;change&amp;nbsp;your&amp;nbsp;app's&amp;nbsp;location."&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Publisher&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Blankensoft"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;如果你有机会将你的程序部署到真实设备中，就会在游戏中心里看到你的游戏。在美国，这意味着你在11月8号就可以去尝试了。如果你在新西兰，那么现在你已经可以得到一部真机了。&lt;/p&gt;  &lt;p&gt;如果想做到这点，你要确保已经在&lt;a href="http://create.msdn.com/"&gt;App Hub&lt;/a&gt;中注册了。只有在你注册的了开发人员账户后才能将你的代码放到你自己的手机中。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;这个例子和我上面写的内容相比没有什么更多的内容，但你还是可以把它下载下来。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day22"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-22-Apps-vs-Games.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-22-Apps-vs-Games.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt; &lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1915231.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915231.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915139.html</id><title type="text">Windows Phone 7 开发 31 日谈——第21日：Silverlight Toolkit for Windows Phone</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第21日。 在昨天讨论了地图控件之后，我突然想到你可能还不知道Silverlight Toolkit为你提供了大量的控件。今天的文章就来讲解Silverlight Toolkit for Windows Phone，另外，还会说到Silverlight 3 Toolkit。 什么是工具包？ 在最初的Silverlight 3工具包...</summary><published>2010-12-23T09:33:00Z</published><updated>2010-12-23T09:33:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915139.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915139.html"/><content type="html">&lt;p&gt;本文是&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;系列的第21日。&lt;/p&gt;  &lt;p&gt;在昨天讨论了地图控件之后，我突然想到你可能&lt;a name="OLE_LINK7"&gt;&lt;/a&gt;&lt;a name="OLE_LINK6"&gt;还&lt;/a&gt;不知道Silverlight Toolkit为你提供了&lt;strong&gt;大量的&lt;/strong&gt;控件。今天的文章就来讲解&lt;a href="http://silverlight.codeplex.com/releases/view/52297"&gt;Silverlight Toolkit for Windows Phone&lt;/a&gt;，另外，还会说到&lt;a href="http://www.silverlight.net/content/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;Silverlight 3 Toolkit&lt;/a&gt;。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;什么是工具包？&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在&lt;a href="http://www.silverlight.net/content/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;最初的Silverlight 3工具包&lt;/a&gt;中有一大堆可以用在项目中的额外控件。包含的控件从图表（Chart）到手风琴视图（Accordion），从日期选择器（Date Picker）到自动完成输入框（Autocomplete Box）。这个工具包最棒的地方就是它完全兼容我们用Silverlight写的Windows Phone应用程序。&lt;/p&gt;  &lt;p&gt;Silverlight Toolkit for Windows Phone与之类似，但它包含了额外的一些可以用在Windows Phone程序中的控件。它们是：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;ContextMenu&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DatePicker &amp;amp; TimePicker&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;GestureListener&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ToggleSwitch&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WrapPanel&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在本文下面的内容中我会为工具包中的每种控件都提供一个例子，不过我还是强烈建议你仔细研究&lt;a href="http://www.silverlight.net/content/samples/sl3/toolkitcontrolsamples/run/default.html"&gt;Silverlight 3 Toolkit&lt;/a&gt;。这里有大量可以用在你的项目中的控件，示例和代码。我会在后面的文章中介绍工具包中的图表控件，但是你需要耐心等待，当然你也可以现在就开始研究它。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;ContextMenu&lt;/strong&gt;&lt;strong style="font-size: 14pt;"&gt;控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;如果你试过将某个程序别到起始页上，你就会看到ContextMenu在起作用。下面是我在将Internet Explorer放到模拟器起始页面时的样子（按下并保持就会显示这个菜单）：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733001448.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733004729.jpg" border="0" height="637" width="352" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;为了让这个菜单出现，我们需要使用Silverlight工具包中的ContextMenu控件。和本文所有的例子一样，我们需要在项目中添加Silverlight工具包的程序集。你可以在这看到：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733011598.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image003" alt="clip_image003" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733023659.jpg" border="0" height="502" width="594" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;添加程序集后，还要在XAML页中添加名称空间。将这个名称空间添加到文件顶部的&amp;lt;phone:PhoneApplicationPage&amp;gt;标签中：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 现在可以进入正题了。让我们找一个能为用户提供更多选项的控件，矩形。我们可能会有一个用户想与之交互的形状，图片或图标等等。也可能对这个矩形我们要做更多的事（想想右击菜单）。通过向矩形添加一个ContextMenu，可以在用户点击对象并保持时弹出一个菜单。它可以是任何XAML元素，所以你甚至可以在应用程序的背景，全景视图或按钮中应用此控件。下面是如何使用它的XAML代码：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('582094f9-b62f-4409-84d4-3692be83efba')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_582094f9-b62f-4409-84d4-3692be83efba" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_582094f9-b62f-4409-84d4-3692be83efba" onclick="cnblogs_code_hide('582094f9-b62f-4409-84d4-3692be83efba',event)"&gt;&lt;div id="cnblogs_code_open_582094f9-b62f-4409-84d4-3692be83efba"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rectangle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Red"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ContextMenuService.ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="this&amp;nbsp;is&amp;nbsp;menu&amp;nbsp;item&amp;nbsp;1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MenuItem_Click"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="this&amp;nbsp;is&amp;nbsp;menu&amp;nbsp;item&amp;nbsp;2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MenuItem_Click"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:MenuItem&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="this&amp;nbsp;is&amp;nbsp;menu&amp;nbsp;item&amp;nbsp;3"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Click&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MenuItem_Click"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ContextMenuService.ContextMenu&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;通常我们要使用ContextMenuService，在特定的控件上添加ContextMenu。你可以看到每一项都有一个Click事件，允许将这些菜单项与代码相关联。下面是我的ContextMenu截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223173303561.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image004" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223173304495.jpg" border="0" height="666" width="368" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果你在模拟器中测试这个程序，可能会注意到背景中的内容都缩小了一点，好像陷入了背景中，将菜单呈现在了用户所注视的正前方。当然你可能不需要这个动作，那么在&amp;lt;toolkit:ContextMenu&amp;gt;项中有一个&lt;strong&gt;IsZoomEnabled&lt;/strong&gt;特性。将它设置为false可以停止自动的缩放动画。&lt;/p&gt;  &lt;p&gt;为XAML元素添加这种类似右击菜单的内容很简单。这可能是6个控件中最常用的控件了（除非GestureService不能用了）。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;DatePicker&lt;/strong&gt;&lt;strong style="font-size: 14pt;"&gt;和TimePicker控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在我为本文准备例子时，这两个控件给我带来了一个有趣的挑战。它们是如此的简单以至于我都不知道我哪儿做错了。事实上，还真是有点儿小魔力。一会儿我会解释。首先，看看如何将这些控件添加到页面中。这很简单：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:DatePicker&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="7/22/1976"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:TimePicker&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="12:02&amp;nbsp;AM"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;当你添加这些控件到页面中后，它们可以如介绍地那样工作。它们允许用户选择一个日期（以你提供的初始日期开始&amp;#8230;&amp;#8230;如果你没有提供，它默认使用&amp;#8220;今天&amp;#8221;的日期）。下面是每个控件的截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733045445.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image005" alt="clip_image005" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733055379.jpg" border="0" height="548" width="303" /&gt;&lt;/a&gt; &lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733053361.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image006" alt="clip_image006" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223173306264.jpg" border="0" height="549" width="305" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;好了，现在来看看这些控件带给我的复杂问题。你会注意到上面截图中的工具栏。还有两个图标（没有图片）。在我几番思索之后，我知道了它们是&lt;strong&gt;完成&lt;/strong&gt;和&lt;strong&gt;取消&lt;/strong&gt;按钮（你还可以在点击省略号（&amp;#8230;）图标时发现它们。它们会向上滑动并显示文本标签）。&lt;/p&gt;  &lt;p&gt;为了让这些图标能真正工作，你需要按照下面的步骤操作：&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;在你的项目中建一个根目录，命名为&amp;#8220;Toolkit.Content&amp;#8221;。&lt;/li&gt;    &lt;li&gt;在这个目录中添加两个带特定名字的图片     &lt;ol&gt;       &lt;li&gt;ApplicationBar.Cancel.png (&lt;a href="http://jeffblankenburg.com/downloads/wp7/ApplicationBar.Cancel.zip"&gt;点此下载&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;ApplicationBar.Check.png (&lt;a href="http://jeffblankenburg.com/downloads/wp7/ApplicationBar.Check.zip"&gt;点此下载&lt;/a&gt;) &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;要确保这两个图片的Build Action已被设置为&amp;#8220;Content&amp;#8221;。如果你没这么做，请点击图片，然后在属性标签中修改。&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733068562.png"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image007" alt="clip_image007" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733088396.png" border="0" height="544" width="639" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;遵从上述步骤后，它就能工作了！下面是可以正常使用的程序截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733088887.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image008" alt="clip_image008" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733095474.jpg" border="0" height="562" width="310" /&gt;&lt;/a&gt; &lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733091819.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image009" alt="clip_image009" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223173310674.jpg" border="0" height="563" width="311" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;GestureListener&lt;/strong&gt;&lt;strong style="font-size: 14pt;"&gt;控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从Windows Phone 7开发31日谈开始到目前为止，你可能一直在想什么时候能找到在程序中处理用户手势的方法。就在今天！（免责声明：这是其中的&amp;#8220;一种方法&amp;#8221;。其实有很多种方法来处理手势，但无疑这是最简单的一种，如果你是一路读下来的就会发现这是这个系列所推崇的。用最简单的方法实现Windows Phone中的内容。但这未必是你要一直遵从的最佳实践。）&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 好了，都说清楚了，我们来讨论GestureListener吧。和ContextMenu很像，我们要让GestureService知道我们创建了一个&lt;a name="OLE_LINK18"&gt;GestureListener&lt;/a&gt;，然后通常要为我们期待的特定手势配备事件处理程序。记住是在XAML元素中应用它，所以手势只会在被应用的控件中才能被识别。GestureListener支持以下手势：&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Tap&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DoubleTap&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Hold&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Flick&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Pinch&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Drag and Drop&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;每一个手势都是以这种方法实现的，实现起来非常简单。收缩和拖拽操作还有一些细节（通常Delta过程介于手势开始和完成之间）。下面是XAML代码（在另一个矩形中）：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('bdf86e32-2770-4ea1-a632-cc9040a7ce9f')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_bdf86e32-2770-4ea1-a632-cc9040a7ce9f" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_bdf86e32-2770-4ea1-a632-cc9040a7ce9f" onclick="cnblogs_code_hide('bdf86e32-2770-4ea1-a632-cc9040a7ce9f',event)"&gt;&lt;div id="cnblogs_code_open_bdf86e32-2770-4ea1-a632-cc9040a7ce9f"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rectangle&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="100"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Fill&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Blue"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:GestureService.GestureListener&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:GestureListener&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;DoubleTap&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DoubleTapped"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Tap&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Tapped"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Hold&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Held"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DragStarted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DragStart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DragDelta&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DragDelta"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DragCompleted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="DragEnd"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Flick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Flicked"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PinchStarted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PinchStart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PinchDelta&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PinchDelta"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PinchCompleted&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PinchEnd"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:GestureService.GestureListener&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;正如你所见，我定义了所有需要去识别的手势，并将相应的事件处理程序&lt;a name="OLE_LINK20"&gt;&lt;/a&gt;&lt;a name="OLE_LINK19"&gt;赋&lt;/a&gt;给它们，在&lt;a href="http://silverlight.codeplex.com/releases/view/52297#DownloadId=150941"&gt;Silverlight Toolkit for Windows Phone&lt;/a&gt;&lt;u&gt;的代码示例&lt;/u&gt;中，有很多关于如何处理这些事件的好例子。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;ToggleSwitch&lt;/strong&gt;&lt;strong style="font-size: 14pt;"&gt;控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;如果你更改过模拟器的日期/时间就可能看到过这个控件。下面是例子：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733115275.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image010" alt="clip_image010" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733131489.jpg" border="0" height="626" width="346" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;将它添加到页面中非常简单：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Receive&amp;nbsp;updates&amp;nbsp;automatically"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在上面的截图中写的是&amp;#8220;24-hour clock&amp;#8221;，我的例子将会写着&amp;#8220;Receive updates automatically&amp;#8221;。很幸运，On/Off文本是自动为你处理的。如果你想对这个控件做一些定制也是很简单的。我们可以利用HeaderTemplate和ContentTemplate来使这个控件更加&amp;#8220;自我&amp;#8221;。还有Checked和Unchecked事件，它们在操作开关时被触发。（这个控件和CheckBox很相似）。下面是一个使用示例（并绑定到了数据源）：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('5e415424-a23f-41a4-81c3-54d270d7ae57')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_5e415424-a23f-41a4-81c3-54d270d7ae57" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_5e415424-a23f-41a4-81c3-54d270d7ae57" onclick="cnblogs_code_hide('5e415424-a23f-41a4-81c3-54d270d7ae57',event)"&gt;&lt;div id="cnblogs_code_open_5e415424-a23f-41a4-81c3-54d270d7ae57"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Header&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="12:02&amp;nbsp;AM"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch.HeaderTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentControl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneFontSizeLarge}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneForegroundBrush}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{Binding}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch.HeaderTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch.ContentTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;StackPanel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Orientation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Horizontal"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Alert:&amp;nbsp;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneFontSizeSmall}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentControl&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneFontSizeSmall}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{Binding}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;TextBlock&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="every&amp;nbsp;weekday"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneFontSizeSmall}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Foreground&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;PhoneSubtleBrush}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch.ContentTemplate&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:ToggleSwitch&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;最后是WrapPanel。它的目的很明显，因为它是标准控件集中赫然缺失的控件。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;WrapPanel&lt;/strong&gt;&lt;strong style="font-size: 14pt;"&gt;控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WrapPanel基本上是带很多额外特性的StackPanel。几个月前我在创建了一个游戏，我想在一个屏幕里面放置30个按钮。因为那时还没有WrapPanel，我不得不去动态的创建一个Grid，然后再将每个按钮放在Grid中的某个位置上。这些工作比我想象的要多得多，而仅仅是为了在一个5 x 6的布局中放30个按钮。现在WrapPanel帮我们解决了这个问题。&lt;/p&gt;  &lt;p&gt;在下面的例子中，我在一个WrapPanel中放置了12个按钮。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('22b40078-f046-44c8-b39b-d6e1c407e1a9')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_22b40078-f046-44c8-b39b-d6e1c407e1a9" style="display: none;" alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_22b40078-f046-44c8-b39b-d6e1c407e1a9" onclick="cnblogs_code_hide('22b40078-f046-44c8-b39b-d6e1c407e1a9',event)"&gt;&lt;div id="cnblogs_code_open_22b40078-f046-44c8-b39b-d6e1c407e1a9"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:WrapPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="3"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="4"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="5"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="6"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="7"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="8"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="9"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="10"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="11"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="75"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="12"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;toolkit:WrapPanel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;在下面的截图中，你可以看到WrapPanel动态决定在每一行如何安放它们，并在第一行下面堆叠。不会发生重叠（很像StackPanel），而且不用担心内容的尺寸会将你的布局搞砸。下面是截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733141914.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image011" alt="clip_image011" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733142720.jpg" border="0" height="646" width="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;在我下面的代码示例中，你会看到我为Button 1和Button 2配备了事件处理程序。它们可以让所有按钮的尺寸放大或缩小。在把玩这个例子时应该仔细看看WrapPanel是如何动态移动你的内容的，尤其是在运行时。下面是相同代码的截图，只不过其中的按钮被刻意地放大了：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733157670.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image012" alt="clip_image012" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733151748.jpg" border="0" height="661" width="365" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;好了，就是这些！我们讲解了Silverlight Toolkit for Windows Phone中5个全新的可用控件。请在今天就下载它，因为你会发现很快就会用到它。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在这个示例代码中，你可以找到&lt;a href="http://silverlight.codeplex.com/releases/view/52297"&gt;Silverlight Toolkit for Windows Phone&lt;/a&gt;中每一个控件的例子。在第31日时，我会介绍Silverlight 3 Toolkit，以及如何在WP7应用程序中使用图表。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day21"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image013" alt="clip_image013" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231733161159.png" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-21-Silverlight-Toolkit-for-Windows-Phone.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-21-Silverlight-Toolkit-for-Windows-Phone.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1915139.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1915139.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914965.html</id><title type="text">Windows Phone 7 开发 31 日谈——第20日：地图控件</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第20日。 昨天的长文是关于如何使用推送通知向你的手机发送数据的，即便程序没有运行。今天，我们重新回到控件，更具体的说，是地图控件。现在地理定位服务在移动应用程序中越来越流行，它的这种能告知用户身处何地以及身边有何物的能力变得越来越重要。 使用地图控件 作为Visual Studio 2010工具箱的一部分，你只需要将一个地图控件...</summary><published>2010-12-23T07:56:00Z</published><updated>2010-12-23T07:56:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914965.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914965.html"/><content type="html">&lt;div&gt;本文是&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;系列的第20日。&lt;/div&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 昨天的长文是关于如何使用推送通知向你的手机发送数据的，即便程序没有运行。今天，我们重新回到控件，更具体的说，是地图控件。现在地理定位服务在移动应用程序中越来越流行，它的这种能告知用户身处何地以及身边有何物的能力变得越来越重要。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;使用地图控件&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;作为Visual Studio 2010工具箱的一部分，你只需要将一个地图控件拖到页面中即可。这样做时，你会注意到在页面中添加了另一个XML名称空间。&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;xmlns:map="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;这是在我的例子中默认添加的XAML（在我调整好位置和尺寸后）：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:Map&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="607"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;HorizontalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Left"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="myMap"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;VerticalAlignment&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Top"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="456"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;最后，来一张程序中地图的截图：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231554541633.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image001" alt="clip_image001" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/20101223155501906.jpg" border="0" height="672" width="372" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;你会注意到在上图中央的白色文字写着&amp;#8220;无效的证书。注册一个开发人员账户&amp;#8221;。本文的剩余部分，我会说一下我们能对这个地图控件进行的所有不同的操作，包括获得一个有效地开发人员API密钥。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;创建你的开发人员账户&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在构建你的地图程序之前首先要做的就是获得一个Bing Map API密钥。这很简单，并且是免费的，&lt;a name="OLE_LINK4"&gt;&lt;/a&gt;&lt;a name="OLE_LINK3"&gt;并&lt;/a&gt;且可以将上面那行丑陋的白字去掉。要得到它，需要前往&lt;a href="http://www.bingmapsportal.com/"&gt;Bing地图站点&lt;/a&gt;并注册。完成后，你需要创建一个API密钥。窗体看起来是这样的：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231555209972.gif"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image003" alt="clip_image003" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231555412526.gif" border="0" height="523" width="510" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;当你填好后，他们会给你一个看起来像这样的API密钥：&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;AsWlUnHEvLgHlLHaRqTZLslewv1QIdGppxOqyL-7He2jxyHvLAjutrcntemUih-w9&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;（这不是我的API密钥。我替换了很多字符。但它看起来应该像你见到的这样。）&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;使用Credentials Provider属性&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;既然你已经有一个API密钥了，我们需要将它插入到我们的程序中。如果你的程序中只有一个地图控件，向下面这样使用就非常好：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:Map&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;CredentialsProvider&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AsWlUnHEvLgHlLHaRqTZLslewv1QIdGppxOqyL-7He2jxyHvLAjutrcntemUih-w9"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如果你想重用这个值，应该将它保存到别的地方，比如App.xaml文件。像下面这个例子。我提供了你会在App.xaml文件和实际的地图控件中都能用到的代码。我们在App.xaml文件中创建了一个静态的CredentialsProvider，并在我们的页面中访问它。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;App.xaml&lt;/strong&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('885ca4ab-2fae-4421-9fc3-f94209923869')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_885ca4ab-2fae-4421-9fc3-f94209923869" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_885ca4ab-2fae-4421-9fc3-f94209923869" onclick="cnblogs_code_hide('885ca4ab-2fae-4421-9fc3-f94209923869',event)"&gt;&lt;div id="cnblogs_code_open_885ca4ab-2fae-4421-9fc3-f94209923869"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application.Resources&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:ApplicationIdCredentialsProvider&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ApplicationId&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AsWlUnHEvLgHlLHaRqTZLslewv1QIdGppxOqyL-7He2jxyHvLAjutrcntemUih-w9"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;x:Key&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="BingMapsAPIKey"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:ApplicationIdCredentialsProvider&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Application.Resources&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;strong&gt;Map Control&lt;/strong&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:Map&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;CredentialsProvider&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="&lt;/span&gt;&lt;span style="color: #808000;"&gt;{StaticResource&amp;nbsp;BingMapsAPIKey}&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;改变地图控件的特性&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有很多选项可以改变地图的外观。例如，将道路模式改为空中模式，或者决定是否显示缩放级别选择器。你有很多很多可以设置的选项，它们都在&lt;a href="http://www.microsoft.com/maps/isdk/silverlight/default.htm"&gt;Bing Maps Silverlight Control Interactive SDK&lt;/a&gt;中。我就不必在这里把所有选项都罗列一遍了（他们已经做了很多工作了），但我要告诉你如何从地图中获取你的数据。重点只讲两件事：在地图中添加图钉和自定义的形状。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;在地图中添加图钉&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在C#中，添加一个图钉就是创建一个Pushpin对象，设置它的位置，然后将它添加到地图中。在XAML中也可以实现。很明显，XAML为你提供了更快捷的方式，但其实哪种方式都不复杂。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;XAML&lt;/strong&gt;&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:Pushpin&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Location&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="40.1449,&amp;nbsp;-82.9754"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;FontSize&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="30"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Background&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Orange"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('51e93e46-b24d-4cb3-bf6c-f01cf3987b81')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_51e93e46-b24d-4cb3-bf6c-f01cf3987b81" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_51e93e46-b24d-4cb3-bf6c-f01cf3987b81" onclick="cnblogs_code_hide('51e93e46-b24d-4cb3-bf6c-f01cf3987b81',event)"&gt;&lt;div id="cnblogs_code_open_51e93e46-b24d-4cb3-bf6c-f01cf3987b81"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;Pushpin&amp;nbsp;pushpin&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Pushpin();&lt;br /&gt;Location&amp;nbsp;location&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Location();&lt;br /&gt;location.Latitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;40.1449&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;location.Longitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;82.9754&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;pushpin.Location&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;location;&lt;br /&gt;pushpin.Background&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;SolidColorBrush(Colors.Orange);&lt;br /&gt;pushpin.Content&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;pushpin.FontSize&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;30&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;MapControl.Children.Add(pushpin);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;在上面的例子中，无论哪种方式，都会将一个图钉钉到我的办公室，在8800 Lyra Drive, Columbus可以找到。在我的程序中看起来是这样的：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231555465836.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image004" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231555544421.jpg" border="0" height="732" width="404" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果你想知道如何将你的地址转换为经纬度，请参见&lt;a href="http://www.jeffblankenburg.com/post/Day-31-Geocoding-and-More-Fun-In-Bing-Maps-for-Silverlight.aspx"&gt;我的这篇Silverlight 31日谈&lt;/a&gt;系列中的文章。它包含了地理地址编码以及你要在手机程序中所做的内容。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;在地图中添加自定义XAML&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在Map程序集中有一个小控件叫MapPolygon。向它提供一系列位置，它就会在你的地图中画出一个自定义的多边形，当用户缩放和移动地图时它仍会固定在那个位置。由于它是基于经纬度而绑定到地图的，所以程序中有需要，可以很容易地用它勾勒出国家，州，地区，甚至一个停车场的轮廓。下面是实现方法：&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;XAML&lt;/strong&gt;&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;map:MapPolygon&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Fill&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Purple"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Stroke&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="White"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Opacity&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=".7"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;Locations&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="40.1449,-82.9754&amp;nbsp;40.1449,-12.9754&amp;nbsp;10.1449,-82.9754"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;C#&lt;/strong&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('7a80f1df-a0f3-40be-b337-3ea55f14924c')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_7a80f1df-a0f3-40be-b337-3ea55f14924c" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_7a80f1df-a0f3-40be-b337-3ea55f14924c" onclick="cnblogs_code_hide('7a80f1df-a0f3-40be-b337-3ea55f14924c',event)"&gt;&lt;div id="cnblogs_code_open_7a80f1df-a0f3-40be-b337-3ea55f14924c"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;MapPolygon&amp;nbsp;mapPolygon&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;MapPolygon();&lt;br /&gt;mapPolygon.Fill&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;SolidColorBrush(Colors.Purple);&lt;br /&gt;mapPolygon.Stroke&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;SolidColorBrush(Colors.White);&lt;br /&gt;mapPolygon.Opacity&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;.&lt;/span&gt;&lt;span style="color: #800080;"&gt;7&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;LocationCollection&amp;nbsp;locations&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;LocationCollection();&lt;br /&gt;Location&amp;nbsp;location&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Location();&lt;br /&gt;location.Latitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;40.1449&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;location.Longitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;82.9754&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;Location&amp;nbsp;location1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Location();&lt;br /&gt;location1.Latitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;40.1449&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;location1.Longitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;12.9754&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;Location&amp;nbsp;location2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Location();&lt;br /&gt;location1.Latitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;10.1449&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;location1.Longitude&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;82.9754&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;locations.Add(location);&lt;br /&gt;locations.Add(location1);&lt;br /&gt;locations.Add(location2);&lt;br /&gt;mapPolygon.Locations&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;locations;&lt;br /&gt;MapControl.Children.Add(mapPolygon);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;就是这些。我们已经将一个图钉和一个自定义多边形覆盖到了地图中。关于这个控件的更多功能请参见&lt;a href="http://www.microsoft.com/maps/isdk/silverlight/default.htm"&gt;Bing Maps Silverlight Control Interactive SDK&lt;/a&gt;（下面是MapPolygon的截图）  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231556118800.jpg"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image005" alt="clip_image005" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231556155339.jpg" border="0" height="718" width="397" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在这个例子中，你可以找到用XAML和C#将图钉和多边形添加到地图中的例子。可能你不需要全部内容，可以取其一，这完全由你决定。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day20"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image007" alt="clip_image007" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231556151893.jpg" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-20-Map-Control.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-20-Map-Control.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt; &lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1914965.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914965.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914884.html</id><title type="text">Windows Phone 7 开发 31 日谈——第19日：推送通知</title><summary type="text">本文是“Windows Phone 7 开发 31 日谈”系列的第19日。 昨天，我介绍了WebBrowser控件，以及如何在程序中使用它。今天，我们来谈谈可能是这个系列中最重要的话题：推送通知。 可能你对推送通知这个概念还不是很熟悉，其实很简单：不用强制你的应用程序每几分钟就去检查一下服务器，服务器在有新数据的时候可以通知你的手机。 为什么要使用推送通知？ 第一个原因，节省用户的电池电量...</summary><published>2010-12-23T07:19:00Z</published><updated>2010-12-23T07:19:00Z</updated><author><name>金山崟霸</name><uri>http://www.cnblogs.com/porscheyin/</uri></author><link rel="alternate" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914884.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914884.html"/><content type="html">&lt;p&gt;本文是&lt;strong&gt;&lt;u&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883014.html"&gt;&amp;#8220;Windows Phone 7 开发 31 日谈&amp;#8221;&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;系列的第19日。&lt;/p&gt;  &lt;p&gt;昨天，我介绍了WebBrowser控件，以及如何在程序中使用它。今天，我们来谈谈可能是这个系列中最重要的话题：&lt;a name="OLE_LINK2"&gt;&lt;/a&gt;&lt;a name="OLE_LINK1"&gt;推送通知&lt;/a&gt;。&lt;/p&gt;  &lt;p&gt;可能你对推送通知这个概念还不是很熟悉，其实很简单：不用强制你的应用程序每几分钟就去检查一下服务器，服务器在有新数据的时候可以通知你的手机。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;为什么要使用推送通知？&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;第一个原因，节省用户的电池电量。检测服务器数据很耗电，而在手机中，电池绝对是稀缺资源。你永远不会有足够的电量，并且不论你的电池能撑多久，都要尽量避免会使电池续航时间变短的通知。&lt;/p&gt;  &lt;p&gt;第二，你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事，即使程序没有运行。你还可以提醒用户应该打开程序来看看你要告诉他们的事。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;推送通知的过程&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;为了能让你理解我在下面抛出来的代码，我认为很有必要向你精确地解释一下这个过程中所发生的事。&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;用户在手机中首次运行程序时，应用程序会调用&lt;a href="http://msdn.microsoft.com/en-us/library/ff402558%28VS.92%29.aspx"&gt;微软的推送通知服务&lt;/a&gt;，请求一个用于通信的定制URI。&lt;/li&gt;    &lt;li&gt;当在你的Web Service中激发了一个事件时，你应该向那个URI传递信息（附带一个特定的负载），然后推送通知服务会以活动瓷砖更新，吐司（Toast）通知或者程序中真实数据的方式将数据发送到用户的手机中。&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;本文就是要讲解上述要点如何来做。如果你想看一个可以按部就班构建的例子，请参见&lt;a href="http://download.microsoft.com/download/8/2/2/822BD724-2110-40F9-A32E-8CB9BCFD7426/WP7SLTrainingKitOffline.Setup.exe"&gt;Windows Phone开发人员训练包&lt;/a&gt;。其中有一个非常出色的关于推送通知的教程。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;从推送通知服务(Push Notification Service)中获取定制的URI&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;非常感谢，微软将这部分内容做得非常简单。我们得使用Microsoft.Phone.Notification程序集，不过我还是得用10行代码来从推送通知服务中（PNS）获取一个定制的URI。首先，我得创建一个HttpNotificationChannel。它将自动与PNS通信（在另一个线程中），并且还得通过一个事件来捕获服务返回的内容。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('ad8dab94-97e8-41c3-b493-20cafa8c9dcc')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_ad8dab94-97e8-41c3-b493-20cafa8c9dcc" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_ad8dab94-97e8-41c3-b493-20cafa8c9dcc" onclick="cnblogs_code_hide('ad8dab94-97e8-41c3-b493-20cafa8c9dcc',event)"&gt;&lt;div id="cnblogs_code_open_ad8dab94-97e8-41c3-b493-20cafa8c9dcc"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;HttpNotificationChannel&amp;nbsp;channel;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GetPushChannel()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;channel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HttpNotificationChannel(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;BLANKENSOFT_&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;DateTime.Now.Ticks.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;channel.ChannelUriUpdated&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;EventHandler&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;NotificationChannelUriEventArgs&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(channel_ChannelUriUpdated);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;channel.Open();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;channel_ChannelUriUpdated(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sender,&amp;nbsp;NotificationChannelUriEventArgs&amp;nbsp;e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dispatcher.BeginInvoke(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;delegate&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;URIBlock.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;channel.ChannelUri.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;在这个例子中我得到的URI是这样的：&lt;/p&gt;  &lt;p&gt;http://sn1.notify.live.net/throttledthirdparty/01.00/AAHsLicyiJgtTaiDbJoSgmFiAgAAAAADAwAAAAQUZm52OjlzOEQ2NDJDRkl5MEVFMEQ&lt;/p&gt;  &lt;p&gt;一旦你有了URI，就可以在Web Service中保存它了。Web Service会初始化将要发送到你手机上的信息，我们有3种方法来实现：瓷砖（Tile）通知，吐司（Toast）通知和原生通知。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;不同的需求，不同的消息&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;我刚才提到了你可以向手机发送3种不同类型的消息。下面是一个概述：&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;原生通知（Raw Notification）- &lt;/strong&gt;原生通知用于设备中真正在运行的程序。它允许你在用户使用时实时更新用户界面。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;吐司通知（Toast Notification）&lt;/strong&gt;&amp;#8211; 无论程序是否在运行都会收到这个消息，但在程序运行时弹出吐司消息可能会有点儿讨人厌。我会在下面的例子中演示。吐司通知不能更新你程序的数据。想做到这一点还是需要传递一个原生通知。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;瓷砖通知（Tile Notification）&lt;/strong&gt;&amp;#8211; 如果你的程序被钉在了开始界面中，你可以用瓷砖通知来更新瓷砖。你可以改变背景图片以及一个0-99的整数。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;发送一个吐司通知&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;一旦我们得到了推送URI，剩下的就是组合HTTP消息的事了，然后将消息发送给这个URI。下面是代码示例：&lt;/p&gt;  &lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('d3f4bbcb-2d1c-4107-bf68-f3bbb245dcae')"&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_d3f4bbcb-2d1c-4107-bf68-f3bbb245dcae" style="display: none;"  alt="" /&gt;&lt;img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_d3f4bbcb-2d1c-4107-bf68-f3bbb245dcae" onclick="cnblogs_code_hide('d3f4bbcb-2d1c-4107-bf68-f3bbb245dcae',event)"&gt;&lt;div id="cnblogs_code_open_d3f4bbcb-2d1c-4107-bf68-f3bbb245dcae"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;HttpWebRequest&amp;nbsp;sendNotificationRequest&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(HttpWebRequest)WebRequest.Create(channel.ChannelUri.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendNotificationRequest.Method&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;POST&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Indicate&amp;nbsp;that&amp;nbsp;you'll&amp;nbsp;send&amp;nbsp;toast&amp;nbsp;notifications!&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendNotificationRequest.ContentType&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;text/xml&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendNotificationRequest.Headers&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;WebHeaderCollection();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendNotificationRequest.Headers.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;X-NotificationClass&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullOrEmpty(txtMessage.Text))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Create&amp;nbsp;xml&amp;nbsp;envelope&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;data&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;X-WindowsPhone-Target:&amp;nbsp;toast\r\n\r\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;?xml&amp;nbsp;version='1.0'&amp;nbsp;encoding='utf-8'?&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;wp:Notification&amp;nbsp;xmlns:wp='WPNotification'&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;wp:Toast&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;wp:Text1&amp;gt;{0}&amp;lt;/wp:Text1&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/wp:Toast&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/wp:Notification&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Wrap&amp;nbsp;custom&amp;nbsp;data&amp;nbsp;into&amp;nbsp;envelope&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;message&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Format(data,&amp;nbsp;txtMessage.Text);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;byte&lt;/span&gt;&lt;span style="color: #000000;"&gt;[]&amp;nbsp;notificationMessage&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Encoding.Default.GetBytes(message);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Set&amp;nbsp;Content&amp;nbsp;Length&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendNotificationRequest.ContentLength&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;notificationMessage.Length;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Push&amp;nbsp;data&amp;nbsp;to&amp;nbsp;stream&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(Stream&amp;nbsp;requestStream&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;sendNotificationRequest.GetRequestStream())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requestStream.Write(notificationMessage,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;notificationMessage.Length);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Get&amp;nbsp;reponse&amp;nbsp;for&amp;nbsp;message&amp;nbsp;sending&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpWebResponse&amp;nbsp;response&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(HttpWebResponse)sendNotificationRequest.GetResponse();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;notificationStatus&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;response.Headers[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;X-NotificationStatus&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;notificationChannelStatus&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;response.Headers[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;X-SubscriptionStatus&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;deviceConnectionStatus&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;response.Headers[&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;X-DeviceConnectionStatus&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;正如你所见，这部分代码很长并且比较复杂。我建议你多花些时间在&lt;a href="http://download.microsoft.com/download/8/2/2/822BD724-2110-40F9-A32E-8CB9BCFD7426/WP7SLTrainingKitOffline.Setup.exe"&gt;Windows Phone开发人员训练包&lt;/a&gt;上，并且跟着推送通知的例子完整地走一遍。&lt;/p&gt;  &lt;p&gt;这是一个演示推送通知（从头到尾）如何工作的绝佳例子，同时向你展示了这些更新可以让你的应用程序总是保持在用户眼前的强大力量。&lt;/p&gt;  &lt;p&gt;&lt;strong style="font-size: 14pt;"&gt;下载示例代码&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;对于今天的例子来说，上面的代码由于缺少所需的环境所以对你没什么帮助。今天的下载内容实际上是Windows Phone开发人员训练包中推送通知例子的最终版。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bit.ly/31daysofwp7-day19"&gt;&lt;img style="border: 0px none; display: inline;" title="clip_image004" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/porscheyin/201012/201012231518378066.jpg" border="0" height="104" width="104" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原文地址：&lt;a href="http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-19-Push-Notifications.aspx"&gt;http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-19-Push-Notifications.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;span style="font-size: 12pt;"&gt;如果大家喜欢我的文章，请点击&amp;#8220;推荐&amp;#8221;，&lt;/span&gt;&lt;span style="color: red; font-size: 12pt;"&gt;谢谢！&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/porscheyin/aggbug/1914884.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914884.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
