<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_{GnieTech}</title><subtitle type="text">分享是一种快乐 分享技术是一种美德</subtitle><id>http://feed.cnblogs.com/blog/u/44053/rss</id><updated>2012-05-03T15:12:54Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/44053/rss"/><entry><id>http://www.cnblogs.com/gnielee/archive/2012/05/03/windows-mobile-6x-marketplace-discontiuation.html</id><title type="text">Windows Mobile 6.x 市场将不再提供服务支持</title><summary type="text">想必有许多朋友和我一样是从Mobile 6.x 开始接触Windows 平台手机的。其实我接触Windows 手机比较晚，开始用的是Mobile 6.5 的系统，那时感觉只有一个字“慢”。</summary><published>2012-05-03T15:10:00Z</published><updated>2012-05-03T15:10:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2012/05/03/windows-mobile-6x-marketplace-discontiuation.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2012/05/03/windows-mobile-6x-marketplace-discontiuation.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 想必有许多朋友和我一样是从Mobile 6.x 开始接触Windows 平台手机的。其实我接触Windows 手机比较晚，开始用的是Mobile 6.5 的系统，那时感觉只有一个字“慢”。用惯了Nokia 的机器，转到Windows Mobile，真的感觉系统响应时间很长。相比而言Windows Phone 7 的速度就让人满意多了。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="7_3313343_807e366deb096ec" border="0" alt="7_3313343_807e366deb096ec" src="http://images.cnblogs.com/cnblogs_com/gnielee/201205/201205032309519098.jpg" width="302" height="394" /&gt;&amp;#160;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="windows-mobile-6-5" border="0" alt="windows-mobile-6-5" src="http://images.cnblogs.com/cnblogs_com/gnielee/201205/201205032309532884.jpg" width="296" height="394" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 今天收到邮件通知：微软将于2012年5月17日停止Windows Mobile 6.x Marketplace 的服务，届时用户将不能通过Windows Mobile 手机浏览或下载应用程序。服务停止后原先已经安装在手机的软件和游戏仍然可以继续运行，但不再提供其他的下载。微软建议大家及时浏览并更新相应的软件和游戏程序，注意保持手机上的数据信息。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 微软此举预示着Windows Mobile 将逐渐退出激烈的市场竞争，Windows Phone 将成为未来手机市场的主要竞争品牌。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WindowsPhone7.5" border="0" alt="WindowsPhone7.5" src="http://images.cnblogs.com/cnblogs_com/gnielee/201205/201205032309551479.jpg" width="490" height="353" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2481948.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2012/05/03/windows-mobile-6x-marketplace-discontiuation.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2012/04/29/vs11-bring-metro-style-apps.html</id><title type="text">Visual Studio 11 Beta 带来新的Metro 应用开发体验</title><summary type="text">Visual Studio 11 Beta 为开发者带来了许多新的开发体验，其中最吸引眼球的当属为Windows 8 提供的Metro 风格的应用开发环境。Metro 风格的应用首次在Windows Phone 7 平台上尝试使众多用户眼前一亮...</summary><published>2012-04-29T15:25:00Z</published><updated>2012-04-29T15:25:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2012/04/29/vs11-bring-metro-style-apps.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2012/04/29/vs11-bring-metro-style-apps.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Visual Studio 11 Beta 为开发者带来了许多新的开发体验，其中最吸引眼球的当属为Windows 8 提供的Metro 风格的应用开发环境。Metro 风格的应用首次在Windows Phone 7 平台上尝试使众多用户眼前一亮，在已经发布的Windows 8 消费者预览版操作平台中Metro 应用再一次被深度植入，这将带来更多而且更加新颖的用户体验，同时也给开发者带了新的机遇与挑战。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Visual Studio 11 Beta 提供了两种Metro 应用的开发方式：HTML + JavaScript 和XAML + C#/C++/VB。开发者可以根据自己的需要开发不同类型的Metro 应用。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Visual C# –&amp;gt; Windows Metro style 菜单中提供了三种应用程序风格：Blank Application、Grid Application、Split Application。&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/gnielee/201204/201204292324082791.png" width="564" height="296" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HTML + JavaScript 的应用可以在Other Languages 菜单中找到，与C# 一样也提供了三种应用风格。&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/gnielee/201204/20120429232412779.png" width="564" height="293" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 在新建工程时Visual Studio 11 会自动协助开发者获取Windows 8 CP 的Developer License，并完成工程的创建。接下来就可以开发支持Windows 8 平台的Metro 应用了。&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/gnielee/201204/201204292324163716.png" width="584" height="502" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 除了Visual Studio 11 外，微软还加入了Blend for Visual Studio 的开发设计工具。这个工具只有在Windows 8 环境中才可以使用，便于设计Metro 应用的UI界面。&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/gnielee/201204/201204292324319728.png" width="583" height="314" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/gnielee/201204/201204292325199240.png" width="604" height="256" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;参考资料&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;MSDN 上提供了针对XAML 和HTML 的开发资料：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/windows/apps/xaml/BR229566(v=win.10).aspx" target="_blank"&gt;Developing Metro style apps (C#/C++/VB)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229565" target="_blank"&gt;Developing Metro style apps (JavaScript)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/windows/apps/hh452646.aspx" target="_blank"&gt;Design Metro style apps using Blend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;下载链接&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098143" target="_blank"&gt;Visual Studio 11 Beta&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2476587.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2012/04/29/vs11-bring-metro-style-apps.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/10/19/ebook-share-silverlight-for-windows-phone-toolkit-in-depth.html</id><title type="text">免费Ebook 分享《Silverlight for Windows Phone Toolkit in Depth》</title><summary type="text">刚下了一本由Boryana Miloshevska 编写的《Silverlight for Windows Phone Toolkit in Depth》，提到Windows Phone Toolkit 大家应该不陌生，其中包含了很多Windows Phone 开发需要的组件。在这本书中全面细致的对Windows Phone Toolkit 进行了介绍，而且是全彩色图文并茂。</summary><published>2011-10-19T12:53:00Z</published><updated>2011-10-19T12:53:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/10/19/ebook-share-silverlight-for-windows-phone-toolkit-in-depth.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/10/19/ebook-share-silverlight-for-windows-phone-toolkit-in-depth.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 刚下了一本由Boryana Miloshevska 编写的《Silverlight for Windows Phone Toolkit in Depth》，提到&lt;a href="http://silverlight.codeplex.com/" target="_blank"&gt;Windows Phone Toolkit&lt;/a&gt; 大家应该不陌生，其中包含了很多Windows Phone 开发需要的组件。在这本书中全面细致的对Windows Phone Toolkit 进行了介绍，而且是全彩色图文并茂。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 书中包括了Windows Phone Toolkit 中所有控件，不论你是Windows Phone 开发的菜鸟还是老鸟，这本书的确不容错过！最新的Windows Phone Toolkit 全面支持Windows Phone 7.1 SDK（"Mango"）的开发。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;o AutoCompleteBox      &lt;br /&gt;o ContextMenu       &lt;br /&gt;o DatePicker       &lt;br /&gt;o DateTimeConverters       &lt;br /&gt;o ExpanderView       &lt;br /&gt;o Gestures       &lt;br /&gt;o HeaderedItemsControl       &lt;br /&gt;o HubTile       &lt;br /&gt;o ListPicker       &lt;br /&gt;o LocalizedResources       &lt;br /&gt;o LockablePivot       &lt;br /&gt;o LoopingSelector       &lt;br /&gt;o LongListSelector       &lt;br /&gt;o MultiselectList       &lt;br /&gt;o Page Transitions       &lt;br /&gt;o PerformanceProgressbar       &lt;br /&gt;o PhoneTextBox       &lt;br /&gt;o WrapPanel       &lt;br /&gt;o TiltEffect       &lt;br /&gt;o TimePicker       &lt;br /&gt;o ToggleSwitch&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image16" border="0" alt="image16" src="http://images.cnblogs.com/cnblogs_com/gnielee/201110/201110192052277761.png" width="404" height="474" /&gt;&lt;/p&gt;  &lt;p&gt;作者同时也说明了将本书作为免费提供的原因：&lt;/p&gt;  &lt;div class="quote"&gt;   &lt;p&gt;&lt;strong&gt;Point1&lt;/strong&gt;. First of all, because “Silverlight for Windows Phone Toolkit” is a FREE library with great controls, provided by Microsoft.       &lt;br /&gt;&lt;strong&gt;Point2&lt;/strong&gt;. There is a lot of paid content on the web regarding Windows Phone development and quite a few FREE one.       &lt;br /&gt;This was the reason why I founded www.windowsphonegeek.com about a year ago: to create a FREE community with high quality and up to date windows phone       &lt;br /&gt;development content. So having in mind that there is no documentation for the toolkit or any books available, I decided to write and share a FREE one.&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;下载地址&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.windowsphonegeek.com/WPToolkitBook"&gt;http://www.windowsphonegeek.com/WPToolkitBook&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2218179.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/10/19/ebook-share-silverlight-for-windows-phone-toolkit-in-depth.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/09/29/windows-phone-sdk-7-1-release.html</id><title type="text">Windows Phone SDK 7.1 发布</title><summary type="text">“Mango”发布后，相应的Windows Phone SDK 7.1 也正式发布了，利用它能够开发支持Windows Phone 7.0 或Windows Phone 7.5 两种系统平台的手机设备。</summary><published>2011-09-29T14:47:00Z</published><updated>2011-09-29T14:47:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/09/29/windows-phone-sdk-7-1-release.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/09/29/windows-phone-sdk-7-1-release.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; “Mango”发布后，相应的Windows Phone SDK 7.1 也正式发布了，利用它能够开发支持Windows Phone 7.0 或Windows Phone 7.5 两种系统平台的手机设备。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;开发包内容&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Microsoft Visual Studio 2010 Express for Windows Phone &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows Phone Emulator&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows Phone SDK 7.1 Assemblies &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Silverlight 4 SDK and DRT &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Microsoft Expression Blend SDK for Windows Phone 7 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Microsoft Expression Blend SDK for Windows Phone OS 7.1 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· WCF Data Services Client for Window Phone &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Microsoft Advertising SDK for Windows Phone&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;系统要求&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Supported Operating Systems: Windows 7, Windows Vista&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows® Vista® (x86 and x64) with Service Pack 2 – all editions except Starter Edition&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows 7 (x86 and x64) – all editions except Starter Edition&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Installation requires 4 GB of free disk space on the system drive.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· 3 GB RAM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;· Windows Phone Emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Windows Phone SDK 7.1 也全面支持Visual Studio 2010 SP1，如果您先前安装过Windows Phone SDK 7.1 Beta 或RC 版本的开发包，请先将其卸载后再安装正式版本。另，目前页面也提供了&lt;a href="http://go.microsoft.com/fwlink/?LinkID=226694" target="_blank"&gt;ISO 文件格式下载&lt;/a&gt;。&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27570" target="_blank"&gt;进入下载页面&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Capture" border="0" alt="Capture" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292246458285.png" width="520" height="468" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Download" border="0" alt="Download" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292246491760.png" width="521" height="469" /&gt;&lt;/p&gt;  &lt;p&gt;Windows Phone Developer 们赶快下载吧～～&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2195994.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/09/29/windows-phone-sdk-7-1-release.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/09/29/mango-release.html</id><title type="text">“Mango”来了！！</title><summary type="text">就在美国当地时间9月27日，期待已久的Mango 系统终于发布了，比先前网络上流传的10月中旬提早了近2周时间。28日一早将手机连上电脑，便看到Mango 更新提示。按奈不住激动的心情要赶紧吃到“Mango”。</summary><published>2011-09-29T14:21:00Z</published><updated>2011-09-29T14:21:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/09/29/mango-release.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/09/29/mango-release.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 就在美国当地时间9月27日，期待已久的Mango 系统终于发布了，比先前网络上流传的10月中旬提早了近2周时间。28日一早将手机连上电脑，便看到Mango 更新提示。按奈不住激动的心情要赶紧吃到“Mango”。本人手机型号是HD7，之前升级过Windows Phone Developer 7712 Beta 版。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="UpdateInfo" border="0" alt="UpdateInfo" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292220448732.jpg" width="668" height="299" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;提示可用更新：Update for Windows Phone 7 for ISV beta (7720)&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Update" border="0" alt="Update" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292220506153.jpg" width="632" height="629" /&gt;&lt;/p&gt;  &lt;p&gt;开始下载更新程序进行更新：&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DownloadUpdate" border="0" alt="DownloadUpdate" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292220527841.jpg" width="632" height="557" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 系统升级到Mango 后，便受到Mango ISV beta Bundle: Cleanup 更新。这个就是升级过7712 Beta 版后的清理更新，免去回滚到NoDo 之苦。赞！&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CleanUp" border="0" alt="CleanUp" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292220544054.jpg" width="585" height="297" /&gt;&lt;/p&gt;  &lt;p&gt;继续更新Cleanup：&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CleanUpInfo" border="0" alt="CleanUpInfo" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292221001541.jpg" width="628" height="546" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 更新完Cleanup 后，紧接着又收到第三个更新：HTC Update for Windows Phone，这个是HTC 根据Mango 系统发布的手机硬件更新。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="HTCUpdate" border="0" alt="HTCUpdate" src="http://images.cnblogs.com/cnblogs_com/gnielee/201109/201109292221059933.jpg" width="630" height="557" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 至此，三个更新完成后终于见到期待已久的“Mango”了。感觉和7712 变化不大。其一，原来“中国移动”的字样变成了英文“CHINA MOBILE”，文字终于和谐了。其二，原来HTC 的程序Attentive Phone，直接整合到Mango 的Settings 中了。害得我升级Attentive Phone 后还找了半天程序在哪。再有就是一些App 也相继需要更新。总体来说没有什么太多惊喜，至少是正式版本了！“Mango”还要慢慢品尝。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2195976.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/09/29/mango-release.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/08/26/wpf-surface2sdk-librarycontainer.html</id><title type="text">WPF 与Surface 2.0 SDK 亲密接触–LibraryContainer 篇</title><summary type="text">看过前面关于LibraryStack 和LibraryBar 的介绍后，大家可能已经对Library 控件系列有了进一步了解，本篇将继续介绍LibraryContainer，它其实就是LibraryStack、LibrayBar 的集合体。</summary><published>2011-08-26T06:23:00Z</published><updated>2011-08-26T06:23:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/08/26/wpf-surface2sdk-librarycontainer.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/08/26/wpf-surface2sdk-librarycontainer.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 最近比较懒惰一直都没写东西，再不写笔里的墨水就快干了。看过前面关于&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/05/wpf-surface2sdk-librarystack.html" target="_blank"&gt;LibraryStack&lt;/a&gt; 和&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html" target="_blank"&gt;LibraryBar&lt;/a&gt; 的介绍后，大家可能已经对Library 控件系列有了进一步了解，本篇将继续介绍LibraryContainer，它其实就是LibraryStack、LibrayBar 的集合体。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 首先，我们仍然需要创建一个DataTemplate 用来控制LibraryStack、LibrayBar 的显示样式。然后新建一个LibraryContainer，在其中增加StackView 和BarView 两种浏览模式。&lt;/p&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LibraryBarItemTemplate&amp;quot;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Image &lt;/span&gt;&lt;span style="color: red"&gt;Source&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Bitmap&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label &lt;/span&gt;&lt;span style="color: red"&gt;FontSize&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;14&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Content&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mlibraryContainer&amp;quot;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer.StackView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;StackView &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;LibraryBarItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer.StackView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer.BarView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;BarView &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;LibraryBarItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer.BarView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryContainer&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 与上一篇&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html" target="_blank"&gt;LibraryBar&lt;/a&gt; 一样我们继续使用分组的浏览模式，按GroupName 进行分组操作，PhotoAlbum 类请参考&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html" target="_blank"&gt;这里&lt;/a&gt;。&lt;/p&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;&amp;gt; items = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;&amp;gt;();&lt;br/&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;imagesPath = &lt;span style="color: #a31515"&gt;@&amp;quot;C:\Users\Public\Pictures\Sample Pictures\&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Hydrangeas.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Hydrangeas&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Lighthouse.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Lighthouse&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Tulips.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Tulips&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Jellyfish.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Jellyfish&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Koala.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Koala&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Penguins.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Penguins&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;&lt;br/&gt;mlibraryContainer.ItemsSource = items;&lt;br/&gt;&lt;span style="color: #2b91af"&gt;ICollectionView &lt;/span&gt;defaultView = &lt;span style="color: #2b91af"&gt;CollectionViewSource&lt;/span&gt;.GetDefaultView(items);&lt;br/&gt;defaultView.GroupDescriptions.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyGroupDescription&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;GroupName&amp;quot;&lt;/span&gt;));&lt;p&gt;运行效果：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Capture" border="0" alt="Capture" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108261422367040.png" width="354" height="357" /&gt;&lt;/p&gt;&lt;p&gt;按分组选择：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Capture2" border="0" alt="Capture2" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108261422382905.png" width="304" height="305" /&gt;&amp;#160;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Capture4" border="0" alt="Capture4" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108261422395871.png" width="304" height="339" /&gt;&lt;/p&gt;&lt;p&gt;点击下方按钮切换为BarView 模式：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Capture3" border="0" alt="Capture3" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108261422407724.png" width="614" height="282" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2154562.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/26/wpf-surface2sdk-librarycontainer.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html</id><title type="text">WPF 与Surface 2.0 SDK 亲密接触–LibraryBar 篇</title><summary type="text">与LibraryStack 类似LibraryBar 也属于ItemsControl，在LibraryBar 里的组件会以水平平铺方式展示，并且也可以对其中的组件进行按组分类。同样LibraryBar 也是默认支持拖拽操作。</summary><published>2011-08-07T05:58:00Z</published><updated>2011-08-07T05:58:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html"/><content type="html">&lt;p&gt;&lt;strong&gt;LibraryBar 介绍&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 与LibraryStack 类似LibraryBar 也属于ItemsControl，在LibraryBar 里的组件会以水平平铺方式展示，并且也可以对其中的组件进行按组分类。同样LibraryBar 也是默认支持拖拽操作。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 下面的例子将通过LibraryBar 展示一组Sample 图片。首先，仍然可以使用DataTemplate 作为LibraryBar 的样式模板用来绑定图片资源。接下来在Grid 中添加LibraryBar 控件，并设置好ItemTemplate 数据模板。我们可以通过修改Rows 参数调整LibraryBar 中组件显示的行数。&lt;/p&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Demo.SurfaceWindow1&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/surface/2008&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LibraryBar&amp;quot;&lt;br/&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LibraryBarItemTemplate&amp;quot;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Image &lt;/span&gt;&lt;span style="color: red"&gt;Source&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryBar &lt;/span&gt;&lt;span style="color: red"&gt;x:Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mLibraryBar&amp;quot; &lt;font color="#ff0000"&gt;Rows&lt;/font&gt;&lt;span style="color: blue"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt;&lt;br /&gt;                      &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;LibraryBarItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 为LiraryBar 添加图片数据源。注意，同样不能将图片string[] 数组直接赋给LiraryBar，需要借助ObservableCollection。&lt;/p&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;imagesPath = &lt;span style="color: #a31515"&gt;@&amp;quot;C:\Users\Public\Pictures\Sample Pictures\&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style="color: blue"&gt;try&lt;br/&gt;&lt;/span&gt;{&lt;br/&gt;    &lt;span style="color: blue"&gt;string&lt;/span&gt;[] files = System.IO.&lt;span style="color: #2b91af"&gt;Directory&lt;/span&gt;.GetFiles(imagesPath, &lt;span style="color: #a31515"&gt;&amp;quot;*.jpg&amp;quot;&lt;/span&gt;);&lt;br/&gt;    &lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt; items = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt;(files);&lt;br/&gt;    mLibraryBar.ItemsSource = items;&lt;br/&gt;}&lt;br/&gt;&lt;span style="color: blue"&gt;catch &lt;/span&gt;(System.IO.&lt;span style="color: #2b91af"&gt;DirectoryNotFoundException&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;    &lt;span style="color: green"&gt;// Error info.&lt;br/&gt;&lt;/span&gt;}&lt;p&gt;默认两行模式：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2Row" border="0" alt="2Row" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108071357207968.png" width="504" height="343" /&gt;&lt;/p&gt;&lt;p&gt;三行模式：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="3Row" border="0" alt="3Row" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108071357405539.png" width="391" height="447" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;LibraryBar 分组&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 接下来我们将图片进行分组操作，先增加一个PhotoAlbum 类，其中包含图片的路径、标签、组名信息。&lt;/p&gt;&lt;span style="color: blue"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;br/&gt;&lt;/span&gt;{&lt;br/&gt;    &lt;span style="color: blue"&gt;private string &lt;/span&gt;label;&lt;br/&gt;    &lt;span style="color: blue"&gt;private string &lt;/span&gt;fileName;&lt;br/&gt;    &lt;span style="color: blue"&gt;private string &lt;/span&gt;groupName;&lt;br/&gt;    &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BitmapImage &lt;/span&gt;bitmap;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: blue"&gt;public &lt;/span&gt;PhotoAlbum(&lt;span style="color: blue"&gt;string &lt;/span&gt;fileName, &lt;span style="color: blue"&gt;string &lt;/span&gt;label, &lt;span style="color: blue"&gt;string &lt;/span&gt;groupName)&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: blue"&gt;this&lt;/span&gt;.fileName = fileName;&lt;br/&gt;        &lt;span style="color: blue"&gt;this&lt;/span&gt;.label = label;&lt;br/&gt;        &lt;span style="color: blue"&gt;this&lt;/span&gt;.groupName = groupName;&lt;br/&gt;        &lt;span style="color: blue"&gt;this&lt;/span&gt;.bitmap = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BitmapImage&lt;/span&gt;(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(fileName, &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Absolute));&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: blue"&gt;public string &lt;/span&gt;Label&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;label; }&lt;br/&gt;    }&lt;br /&gt;&lt;br/&gt;&lt;span style="color: blue"&gt;    public string &lt;/span&gt;FileName&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;fileName; }&lt;br/&gt;    }&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;    &lt;span style="color: blue"&gt;public string &lt;/span&gt;GroupName&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;groupName; }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BitmapSource &lt;/span&gt;Bitmap&lt;br/&gt;    {&lt;br/&gt;        &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;bitmap; }&lt;br/&gt;    }&lt;br/&gt;}&lt;p&gt;对DataTemplate 稍作修改，添加图片标签&amp;lt;Label&amp;gt;。&lt;/p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LibraryBarItemTemplate&amp;quot;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Image &lt;/span&gt;&lt;span style="color: red"&gt;Source&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Bitmap&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label &lt;/span&gt;&lt;span style="color: red"&gt;FontSize&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;14&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Content&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding &lt;/span&gt;&lt;span style="color: red"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryBar &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mLibraryBar&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Rows&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;2&amp;quot;&lt;br/&gt;                  &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;LibraryBarItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 依据GroupName 作为分组的方式，为GroupDescriptions 默认的集合浏览方式添加PropertyGroupDescription 对象，并赋给ItemsSource 属性。&lt;/p&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;&amp;gt; items = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;&amp;gt;();&lt;br/&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;imagesPath = &lt;span style="color: #a31515"&gt;@&amp;quot;C:\Users\Public\Pictures\Sample Pictures\&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Hydrangeas.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Hydrangeas&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Lighthouse.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Lighthouse&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Tulips.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Tulips&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Nature&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Jellyfish.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Jellyfish&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Koala.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Koala&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;items.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;(imagesPath + &lt;span style="color: #a31515"&gt;&amp;quot;Penguins.jpg&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Penguins&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Animal&amp;quot;&lt;/span&gt;));&lt;br/&gt;&lt;br/&gt;mLibraryBar.ItemsSource = items;&lt;br/&gt;&lt;span style="color: #2b91af"&gt;ICollectionView &lt;/span&gt;defaultView = &lt;span style="color: #2b91af"&gt;CollectionViewSource&lt;/span&gt;.GetDefaultView(items);&lt;br/&gt;defaultView.GroupDescriptions.Add(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyGroupDescription&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;GroupName&amp;quot;&lt;/span&gt;));&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Group" border="0" alt="Group" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108071358031394.png" width="604" height="286" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;LibraryBar 拖拽&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 从上面的示例中可以发现，我们无法将图片从LibraryBar 中拖拽出来，当拖拽操作结束后图片会自动返回到LibraryBar。接下来将实现把图片拖拽到ScatterView 控件。&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 首先，对XAML 控件进行下修改，将LibraryBar 放入ScatterView 控件。这里需要将ScatterView 的AllwoDrop 属性设为True，背景也要填充颜色，可设置为Transparent 透明，这样才能保证LibraryBar 中的组件可以拖拽到ScatterView 中。&lt;/p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;scatterView&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;SurfaceDragDrop.Drop&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;scatterView_Drop&amp;quot;&lt;br/&gt;                   &lt;/span&gt;&lt;span style="color: red"&gt;AllowDrop&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;True&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Transparent&amp;quot;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterViewItem &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;500&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;300&amp;quot;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryBar &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mLibraryBar&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Rows&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;2&amp;quot; &lt;br/&gt;                          &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;LibraryBarItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterViewItem&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 其次，为ScatterView 添加SurfaceDragDrop.Drop 事件用于处理拖拽的操作。在事件触发时，新建一个ScatterViewItem（newItem） 用于装载被拖动的图片组件。将e.Cursor.Data 转化为PhotoAlbum，借助FileName 属性新建MediaElement。将MediaElement（mediaItem）赋给newItem.Content，并通过GetPosition 获取到拖拽动作的位置作为newItem 在ScatterView 中的显示位置。&lt;/p&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;scatterView_Drop(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;SurfaceDragDropEventArgs &lt;/span&gt;e)&lt;br/&gt;{&lt;br/&gt;    &lt;span style="color: #2b91af"&gt;PhotoAlbum &lt;/span&gt;data = e.Cursor.Data &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoAlbum&lt;/span&gt;;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #2b91af"&gt;ScatterViewItem &lt;/span&gt;newItem = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ScatterViewItem&lt;/span&gt;();&lt;br/&gt;    &lt;span style="color: #2b91af"&gt;MediaElement &lt;/span&gt;mediaItem = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MediaElement&lt;/span&gt;();&lt;br/&gt;    mediaItem.Source = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(data.FileName);&lt;br/&gt;    newItem.Background = &lt;span style="color: #2b91af"&gt;Brushes&lt;/span&gt;.Transparent;&lt;br/&gt;    newItem.Content = mediaItem;&lt;br/&gt;    newItem.Center = e.Cursor.GetPosition(scatterView);&lt;br/&gt;    &lt;br/&gt;    scatterView.Items.Add(newItem);&lt;br/&gt;}&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 这样我们就实现了将LibraryBar 中的组件拖拽到ScatterView。MSDN 上也提供了文档供大家参考：&lt;a href="http://msdn.microsoft.com/en-us/library/ee804812(v=Surface.10).aspx" target="_blank"&gt;Using the Microsoft Surface Drag-and-Drop Framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Drag" border="0" alt="Drag" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108071358157664.png" width="554" height="386" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2129956.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/07/wpf-surface2sdk-librarybar.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/08/05/wpf-surface2sdk-librarystack.html</id><title type="text">WPF 与Surface 2.0 SDK 亲密接触–LibraryStack 篇</title><summary type="text">LibraryStack 本身属于ItemsControl，可以将其他组件以一种集合的方式显示出来，用户可以在LibraryStack 中逐一浏览如图片类的组件，而且它默认支持拖拽操作。</summary><published>2011-08-05T10:56:00Z</published><updated>2011-08-05T10:56:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/08/05/wpf-surface2sdk-librarystack.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/08/05/wpf-surface2sdk-librarystack.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LibraryStack 本身属于ItemsControl，可以将其他组件以一种集合的方式显示出来，用户可以在LibraryStack 中逐一浏览如图片类的组件，而且它默认支持拖拽操作。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 在下面的例子中我们将通过LibraryStack 展示一组图片。首先，为LibraryStack 编写一个DataTemplate 用来绑定图片样式。接下来在Grid 中添加LibraryStack 控件，并设置好数据模板。&lt;/p&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Demo.SurfaceWindow1&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/surface/2008&amp;quot;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: red"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;LibraryStack&amp;quot;&lt;br/&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ItemTemplate&amp;quot;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Image &lt;/span&gt;&lt;span style="color: red"&gt;Source&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;LibraryStack &lt;/span&gt;&lt;span style="color: red"&gt;x:Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mLibraryStack&amp;quot; &lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;SurfaceWindow&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 最后，为LiraryStack 添加数据源。注意，不能将图片string[] 数组直接赋给LiraryStack，需要借助ObservableCollection。&lt;/p&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;imagesPath = &lt;span style="color: #a31515"&gt;@&amp;quot;C:\Users\Public\Pictures\Sample Pictures\&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style="color: blue"&gt;try&lt;br/&gt;&lt;/span&gt;{&lt;br/&gt;    &lt;span style="color: blue"&gt;string&lt;/span&gt;[] files = System.IO.&lt;span style="color: #2b91af"&gt;Directory&lt;/span&gt;.GetFiles(imagesPath, &lt;span style="color: #a31515"&gt;&amp;quot;*.jpg&amp;quot;&lt;/span&gt;);&lt;br/&gt;    &lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt; items = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObservableCollection&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;&amp;gt;(files);&lt;br/&gt;    mLibraryStack.ItemsSource = items;&lt;br/&gt;}&lt;br/&gt;&lt;span style="color: blue"&gt;catch &lt;/span&gt;(System.IO.&lt;span style="color: #2b91af"&gt;DirectoryNotFoundException&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;    &lt;span style="color: green"&gt;// Error info.&lt;br/&gt;&lt;/span&gt;}&lt;p&gt;运行界面：&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="LibraryStack" border="0" alt="LibraryStack" src="http://images.cnblogs.com/cnblogs_com/gnielee/201108/201108051856011552.png" width="454" height="428" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2128958.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/08/05/wpf-surface2sdk-librarystack.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/07/21/people-hub-trouble.html</id><title type="text">由People Hub 引发的那些事儿</title><summary type="text">使用Windows Phone 7 的朋友应该很清楚People Hub 也就是Windows Phone 7 里的联系人模块里面保存着两类联系人信息：1. 导入自手机SIM 卡；2. 同步Windows Live 联系人。总共加起来我的People Hub 里有上百个联系人，不使用搜索的话找起人来好麻烦。</summary><published>2011-07-21T07:45:00Z</published><updated>2011-07-21T07:45:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/07/21/people-hub-trouble.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/07/21/people-hub-trouble.html"/><content type="html">&lt;p&gt;&lt;strong&gt;起因&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 使用Windows Phone 7 的朋友应该很清楚People Hub 也就是Windows Phone 7 里的联系人模块里面保存着两类联系人信息：1. 导入自手机SIM 卡；2. 同步Windows Live 联系人。总共加起来我的People Hub 里有上百个联系人，不使用搜索的话找起人来好麻烦。于是乎就想到把一些不常用的Windows Live 联系人删除，这样可以减少很多记录。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="People Hub" border="0" alt="People Hub" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545023453.jpg" width="554" height="264" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;噩梦&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 只能说我自己太不了解People Hub 的功能。删除联系人时也没多想，三下五除二Contact List 变得很清爽。可万万没想到的事情发生了，第二天打开Live Messenger 发现那些被我删除的人都Disappeared？！很明显People Hub 将我的操作全部同步到Windows Live。没办法只能重新添加一遍，还好我没将所有人删除... ... &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 询问其他好友信息开始在Live Messenger 里添加，但是新加的好友在Live Messenger 始终无法显示，让对方重新加我也是一样，而且我在对方Live Messenger 里总是显示脱机。这是神马情况啊？真服了Live Messenger... ...&lt;/p&gt;  &lt;p&gt;转机&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 好吧！Live Messenger 看了是没戏了，只好登录到Live.com 看看有没有希望。首先发现了“添加好友”功能，打开页面突然有一缕阳光破云而出的感觉（如下图）。赶紧把好友Live 邮箱地址填了进去，点击“下一步”进度条完成，邀请似乎发出去了。对方反馈已经在Live Messenger 收到消息。再看看自己的Live Messenger 一个好友已经添加完毕。嗨，终于是有救了... ...&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AddContact" border="0" alt="AddContact" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545138917.png" width="422" height="144" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AddContact2" border="0" alt="AddContact2" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545169949.png" width="520" height="248" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Live.com 平时也不经常用，登录上来也没仔细看过。 于是怀着期待的心情开始研究起来，当看到下图菜单时我泪流满面啊～～ Windows Live 里居然还有“还原已删除联系人”的功能。这里面有我删除的所有联系人信息，但要注意的是30天以前删除的无法恢复。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Restore" border="0" alt="Restore" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545186785.png" width="356" height="172" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Restore2" border="0" alt="Restore2" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545231731.png" width="624" height="161" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;发现&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 联系人恢复后，突然发现在Live 联系人列表中居然有我SIM 卡上的联系人信息，说明People Hub 把SIM 卡的联系人也同步到Windows Live 了。而且可以将重复的联系人进行合并。比如，我SIM 卡上有个叫“张三”的联系人，一般只保存电话信息；Windows Live 里也有“张三”，保存着Live Messenger、邮箱、地址等信息，就可以将这两个记录合并为一个。这样一来People Hub 里的联系人记录会明显减少，联系人重复的问题也同时得到解决。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 如果说Windows Live 里保存了SIM 卡的联系人，那是不是以后就不再需要将SIM 卡上的联系人导入WP7 了？抱着好奇的心情我再次手贱起来，不过这次是很有把握的操作，于是将手机Reset（恢复出厂设置）... ...&amp;#160; 重新启动手机所有的数据都会消失。那些心存好奇的童鞋注意了是“全部数据都会消失”，包括：下载的应用程序、音乐、图片、视频、自定义设置等，可以说和新买的机器一样。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 在重启和People Hub 里我们都不要选择导入SIM 联系人。进入Settings 界面将Windows Live 与手机进行绑定，经过几分钟同步后，所有Live 联系人数据便会全部同步到People Hub 里，包括之前提到的SIM 卡联系人。如果手机丢了也不必担心联系人电话号码丢失的后续问题，而且也可以尝试&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/06/23/windows-live-and-windows-phone-7.html" target="_blank"&gt;Windows Live &amp;amp; Windows Phone 7&lt;/a&gt; 文章中提到的找手机的方法。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 另外，当你第一次用Live Id 登录手机后，Windows Live 中会记录下手机信息（如下图），其功能请参考&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/06/23/windows-live-and-windows-phone-7.html" target="_blank"&gt;Windows Live &amp;amp; Windows Phone 7&lt;/a&gt; 。主要是寻找手机、日历、文档等功能。如果将这个信息删除的话是无法通过同步恢复的，只能Reset 手机并重新登录一次Live Id。&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="HD7" border="0" alt="HD7" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107211545252679.png" width="477" height="377" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 经过几天的折腾，终于搞明白Windows Live 与Windows Phone 7 的关系了，希望本文能对大家有所帮助。总结内容如下：&lt;/p&gt;  &lt;p&gt;1. People Hub 的联系人与Windows Live 是实时同步的，当然也可以在People 设置里手动同步。导入自SIM 卡的联系人信息也会同步到Windows Live。&lt;/p&gt;  &lt;p&gt;2. 重复的联系人可在Windows Live 中进行合并操作（Live.com）。&lt;/p&gt;  &lt;p&gt;3. 误删的联系人也可在Windows Live 中恢复，但时间不能超过30天。&lt;/p&gt;  &lt;p&gt;4. Windows Phone 7 恢复出厂设置后，所有数据将全部丢失。而且有一种说法是：“如果用Zune 下载的App 可以通过Zune 自动同步回手机上。”经我测试似乎没有这个功能，至少现在那些App 还没回到我手机上。&lt;/p&gt;  &lt;p&gt;5. 首次用Live Id 登录Windows Phone 7 后，Windows Live 会记录该手机信息，并提供一些强大的功能（请参考上面提到的博文）。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2112917.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/07/21/people-hub-trouble.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/gnielee/archive/2011/07/18/wpf-surface2sdk-binding.html</id><title type="text">WPF 与Surface 2.0 SDK 亲密接触 - ScatterView 数据绑定篇</title><summary type="text">与我们常用的一些WPF 控件相同，ScatterView 控件也支持数据绑定功能。本篇将演示如何利用ScatterView 绑定Win7 系统中的样例图片，并且每张图片会以独立的ScatterViewItem 形式展现出来。</summary><published>2011-07-18T08:01:00Z</published><updated>2011-07-18T08:01:00Z</updated><author><name>Gnie</name><uri>http://www.cnblogs.com/gnielee/</uri></author><link rel="alternate" href="http://www.cnblogs.com/gnielee/archive/2011/07/18/wpf-surface2sdk-binding.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/gnielee/archive/2011/07/18/wpf-surface2sdk-binding.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 与我们常用的一些WPF 控件相同，ScatterView 控件也支持数据绑定功能。本篇将演示如何利用ScatterView 绑定Win7 系统中的样例图片，并且每张图片会以独立的ScatterViewItem 形式展现出来。&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 首先，新建一个Surface Application(WPF) 项目，在Grid 中添加ScatterView 控件，并命名为mainScatterView。&lt;/p&gt;  &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mainScatterView&amp;quot;&amp;gt;&lt;br/&gt;        &lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;在C# 代码中将“Sample Pictures”目录下的图片全部添加到ScatterView 的ItemsSource。&lt;/p&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;imagesPath = &lt;span style="color: #a31515"&gt;@&amp;quot;C:\Users\Public\Pictures\Sample Pictures\&amp;quot;&lt;/span&gt;;&lt;br/&gt;&lt;span style="color: blue"&gt;try&lt;br/&gt;&lt;/span&gt;{&lt;br/&gt;    mainScatterView.ItemsSource = System.IO.&lt;span style="color: #2b91af"&gt;Directory&lt;/span&gt;.GetFiles(imagesPath, &lt;span style="color: #a31515"&gt;&amp;quot;*.jpg&amp;quot;&lt;/span&gt;);&lt;br/&gt;}&lt;br/&gt;&lt;span style="color: blue"&gt;catch &lt;/span&gt;(System.IO.&lt;span style="color: #2b91af"&gt;DirectoryNotFoundException&lt;/span&gt;)&lt;br/&gt;{&lt;br/&gt;    &lt;span style="color: green"&gt;// Write Error info here.&lt;br/&gt;&lt;/span&gt;}&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 按下 F5 运行程序，ScatterView 会为每张图片创建一个ScatterViewItem 控件。但是由于XAML 代码中没有编写任何样式模板，所以ScatterViewItem 只显示出图片路径及名称而不是图片本身（如下图）。&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="NoBinding" border="0" alt="NoBinding" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107181601231005.png" width="524" height="382" /&gt;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 为了将图片在ScatterViewItem 显示出来，我们需要定义一个ItemTemplate，它可以使Image 对象与ScatterViewItem 控件绑定在一起。如下代码所示，DataTemplate 设置好数据源是Image 对象即可。&lt;/p&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;mainScatterView&amp;quot;&amp;gt;&lt;br/&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView.ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Image &lt;/span&gt;&lt;span style="color: red"&gt;Source&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;br/&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DataTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView.ItemTemplate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;s&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScatterView&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 再次运行程序，ScatterViewItem 控件会依照ItemTemplate 属性重新创建，同时图片也会在ScatterView 控件中正常的显示。至此我们便完成了ScatterView 的绑定功能，便可以随意的对图片进行Manipulating 操作。&lt;/p&gt;&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="PicBinding" border="0" alt="PicBinding" src="http://images.cnblogs.com/cnblogs_com/gnielee/201107/201107181601268789.png" width="573" height="439" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/gnielee/aggbug/2109645.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/gnielee/archive/2011/07/18/wpf-surface2sdk-binding.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
