﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-TerryLee's Tech Space-随笔分类-[03]&amp;nbsp;&amp;nbsp;银光点亮世界</title><link>http://www.cnblogs.com/Terrylee/category/78190.html</link><description>TerryLee技术专栏</description><language>zh-cn</language><lastBuildDate>Mon, 17 Nov 2008 16:11:25 GMT</lastBuildDate><pubDate>Mon, 17 Nov 2008 16:11:25 GMT</pubDate><ttl>60</ttl><item><title>Silverlight 3一瞥</title><link>http://www.cnblogs.com/Terrylee/archive/2008/11/18/Silverlight-v3-Overview.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Mon, 17 Nov 2008 16:01:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/11/18/Silverlight-v3-Overview.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1335510.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/11/18/Silverlight-v3-Overview.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1335510.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1335510.html</trackback:ping><description><![CDATA[<p>今天<a href="http://weblogs.asp.net/scottgu/default.aspx">ScottGu</a>在自己的Blog上对目前正在开发中的Silverlight 3版本的新特性做了一些透露，Silverlight 3的新特性包括视频方面的增强，包括支持H.264 video；图形方面的增强包括3D支持和GPU硬件加速；开发方面的增强包括更加丰富的数据绑定支持和更多的控件。另外，从Silverlight 3起在开发工具方面也会有较大的改进，将会完全支持在Visual Studio或者Visual Web Developer Express中进行Silverlight应用程序的编写和交互设计（这点也是Silverlight 2在Visual Studio 2008中开发最为开发者诟病的一点），另外还会为数据绑定提供可视化工具，类似于ASP.NET中的数据绑定一样，如下图所示：</p> <p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="418" alt="TerryLee_0211" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight3_14F3D/TerryLee_0211_3.png" width="580" border="0">&nbsp;</p> <p>原文请参考：<a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx">Update on Silverlight 2 - and a glimpse of Silverlight 3</a></p><img src ="http://www.cnblogs.com/Terrylee/aggbug/1335510.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight Toolkit预览Part 1：介绍</title><link>http://www.cnblogs.com/Terrylee/archive/2008/10/29/Silverlight-Toolkit-overview-part1.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 28 Oct 2008 18:06:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/10/29/Silverlight-Toolkit-overview-part1.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1321780.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/10/29/Silverlight-Toolkit-overview-part1.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1321780.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1321780.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>Silverlight Toolkit是由微软提供的一系列的Silverlight控件、组件和工具的集合，不仅免费且完全开源，当前发布的版本中包括12个控件和6套非常酷的主题样式，覆盖的范围包括图表、样式、布局以及用户输入，效果预览：&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/10/29/Silverlight-Toolkit-overview-part1.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1321780.html?type=1" width = "1" height = "1" />]]></description></item><item><title>谈谈Silverlight 2中的视觉状态管理 Part2</title><link>http://www.cnblogs.com/Terrylee/archive/2008/08/14/silverlight-2-visual-state-manager-part-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 13 Aug 2008 17:04:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/08/14/silverlight-2-visual-state-manager-part-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1267360.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/08/14/silverlight-2-visual-state-manager-part-2.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1267360.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1267360.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>在WPF和Silverlight中的控件模板支持自定义控件的观感，所谓的外观，指控件的视觉效果；而感觉则是控件交互的响应性，如在控件上按下鼠标、控件获得焦点等状态的改变。微软在Silverlight 2 Beta 2中引进了一个新的概念视觉状态管理（Visual State Manager），为我们创建交互性的控件模板提供了极大的方便。接下来我将会用几篇文章来介绍一下Silverlight 2中的视觉状态管理。
<br/>
本文为该系列第二篇，介绍如何利用Silverlight 2中的视觉状态管理来定制控件观感。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/08/14/silverlight-2-visual-state-manager-part-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1267360.html?type=1" width = "1" height = "1" />]]></description></item><item><title>技巧：在Silverlight应用程序中进行数据验证</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 29 Jul 2008 15:37:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1256009.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1256009.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1256009.html</trackback:ping><description><![CDATA[<h2>概述</h2> <p>众所周知，在ASP.NET应用程序中，我们可以使用验证控件进行数据输入的验证，遗憾的是在Silverlight中并没有提供任何验证控件，但Silverlight对于双向数据绑定还是提供了一些基本的数据验证支持，我们可以在set设置器中定义验证规则，并对于不合法数据抛出异常，最后通过捕获验证错误事件来实现数据的验证。</p> <p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html">本文</a>将介绍在Silverlight应用程序中如何进行数据验证。</p> <h2>准备知识</h2> <p>Silverlight中如下两种情况下，将会触发验证错误：</p> <p>1.在绑定引擎中执行数据转换时抛出异常</p> <p>2.在业务实体的set设置器中抛出异常</p> <p>为了在验证出错时能够接收到通知，我们必须要在绑定对象上设置如下两个属性为true：</p> <p>ValidatesOnExceptions：告诉绑定引擎当有异常发生时创建一个验证异常</p> <p>NotifyOnValidationError：告诉绑定引擎当有验证错误发生或者错误排除时触发BindingValidationError事件</p> <p>这两个属性都定义在Binding类中，如下代码所示：</p> <p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="418" alt="TerryLee_0154" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight_13952/TerryLee_0154_3.png" width="494" border="0"></a> </p> <p>BindingValidationError事件定义在FrameworkElement中，通过它可以接收到ValidationErrorEventArgs类型的参数，而在ValidationErrorEventArgs中定义了一个很重要的属性Action，它的定义如下：</p> <p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="321" alt="TerryLee_0155" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight_13952/TerryLee_0155_3.png" width="524" border="0"></a> </p> <p>这里Added表示新增一个验证异常，Removed表示排除了一个验证异常。下面通过一个实例我们看一下如何使用它们进行数据的验证。</p> <h2>实例</h2> <p>首先我们编写一个简单的业务类，由于数据绑定验证只能在双向绑定中，所以这里需要实现INotifyPropertyChanged接口，如下代码所示，在set设置器中我们对于数据的合法性进行检查，如果不合法则抛出一个异常：</p><pre class="code"><span style="color: gray">/// &lt;summary&gt;
/// </span><span style="color: green">Author:TerryLee
</span><span style="color: gray">/// </span><span style="color: green">http://www.cnblogs.com/Terrylee
</span><span style="color: gray">/// &lt;/summary&gt;
</span><span style="color: blue">public class </span><span style="color: #2b91af">Person </span>: <span style="color: #2b91af">INotifyPropertyChanged
</span>{
    <span style="color: blue">public event </span><span style="color: #2b91af">PropertyChangedEventHandler </span>PropertyChanged;
    <span style="color: blue">private int </span>_age;
    <span style="color: blue">public int </span>Age
    {
        <span style="color: blue">get </span>{ <span style="color: blue">return </span>_age; }
        <span style="color: blue">set </span>{
            <span style="color: blue">if </span>(<span style="color: blue">value </span>&lt; 0)
                <span style="color: blue">throw new </span><span style="color: #2b91af">Exception</span>(<span style="color: #a31515">"年龄输入不合法！"</span>);
            _age = <span style="color: blue">value</span>;
            <span style="color: blue">if </span>(PropertyChanged != <span style="color: blue">null</span>)
            {
                PropertyChanged(<span style="color: blue">this</span>, <span style="color: blue">new </span><span style="color: #2b91af">PropertyChangedEventArgs</span>(<span style="color: #a31515">"Age"</span>));
            }
        }
    }

    <span style="color: blue">private </span><span style="color: #2b91af">String </span>_name = <span style="color: #a31515">"Terry"</span>;
    <span style="color: blue">public </span><span style="color: #2b91af">String </span>Name
    {
        <span style="color: blue">get </span>{ <span style="color: blue">return </span>_name; }
        <span style="color: blue">set </span>{
            <span style="color: blue">if </span>(<span style="color: blue">value</span>.Length &lt; 4)
                <span style="color: blue">throw new </span><span style="color: #2b91af">Exception</span>(<span style="color: #a31515">"姓名输入不合法！"</span>);
            _name = <span style="color: blue">value</span>;
            <span style="color: blue">if </span>(PropertyChanged != <span style="color: blue">null</span>)
            {
                PropertyChanged(<span style="color: blue">this</span>, <span style="color: blue">new </span><span style="color: #2b91af">PropertyChangedEventArgs</span>(<span style="color: #a31515">"Name"</span>));
            }

        }
    }

    <span style="color: blue">public void </span>NotifyPropertyChanged(<span style="color: #2b91af">String </span>propertyName)
    {
        <span style="color: blue">if </span>(PropertyChanged != <span style="color: blue">null</span>)
        {
            PropertyChanged(<span style="color: blue">this</span>, <span style="color: blue">new </span><span style="color: #2b91af">PropertyChangedEventArgs</span>(propertyName));
        }
    }
}</pre><a href="http://11011.net/software/vspaste"></a>
<p>编写数据绑定，如下代码所示，设置NotifyOnValidationError和ValidatesOnExceptions属性为true，并且定义BindingValidationError事件：</p><pre class="code"><span style="color: green">&lt;!--
    http://www.cnblogs.com/Terrylee
--&gt;
</span><span style="color: blue">&lt;</span><span style="color: #a31515">StackPanel </span><span style="color: red">Orientation</span><span style="color: blue">="Horizontal" </span><span style="color: red">Margin</span><span style="color: blue">="10"&gt;
    &lt;</span><span style="color: #a31515">TextBox </span><span style="color: red">x</span><span style="color: blue">:</span><span style="color: red">Name</span><span style="color: blue">="txtName"  </span><span style="color: red">Width</span><span style="color: blue">="200" </span><span style="color: red">Height</span><span style="color: blue">="30"
            </span><span style="color: red">Text</span><span style="color: blue">="{</span><span style="color: #a31515">Binding </span><span style="color: red">Name</span><span style="color: blue">,</span><span style="color: red">Mode</span><span style="color: blue">=TwoWay,
            </span><span style="color: red">NotifyOnValidationError</span><span style="color: blue">=true,
            </span><span style="color: red">ValidatesOnExceptions</span><span style="color: blue">=true}"
            </span><span style="color: red">BindingValidationError</span><span style="color: blue">="txtName_BindingValidationError"&gt;
    &lt;/</span><span style="color: #a31515">TextBox</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">my</span><span style="color: blue">:</span><span style="color: #a31515">Message </span><span style="color: red">x</span><span style="color: blue">:</span><span style="color: red">Name</span><span style="color: blue">="messageName"&gt;&lt;/</span><span style="color: #a31515">my</span><span style="color: blue">:</span><span style="color: #a31515">Message</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">StackPanel</span><span style="color: blue">&gt;
&lt;</span><span style="color: #a31515">StackPanel </span><span style="color: red">Orientation</span><span style="color: blue">="Horizontal" </span><span style="color: red">Margin</span><span style="color: blue">="10"&gt;
    &lt;</span><span style="color: #a31515">TextBox </span><span style="color: red">x</span><span style="color: blue">:</span><span style="color: red">Name</span><span style="color: blue">="txtAge" </span><span style="color: red">Width</span><span style="color: blue">="200" </span><span style="color: red">Height</span><span style="color: blue">="30"
            </span><span style="color: red">Text</span><span style="color: blue">="{</span><span style="color: #a31515">Binding </span><span style="color: red">Age</span><span style="color: blue">,</span><span style="color: red">Mode</span><span style="color: blue">=TwoWay,
            </span><span style="color: red">NotifyOnValidationError</span><span style="color: blue">=true,
            </span><span style="color: red">ValidatesOnExceptions</span><span style="color: blue">=true}"
            </span><span style="color: red">BindingValidationError</span><span style="color: blue">="txtAge_BindingValidationError"&gt;
    &lt;/</span><span style="color: #a31515">TextBox</span><span style="color: blue">&gt;
    &lt;</span><span style="color: #a31515">my</span><span style="color: blue">:</span><span style="color: #a31515">Message </span><span style="color: red">x</span><span style="color: blue">:</span><span style="color: red">Name</span><span style="color: blue">="messageAge"&gt;&lt;/</span><span style="color: #a31515">my</span><span style="color: blue">:</span><span style="color: #a31515">Message</span><span style="color: blue">&gt;
&lt;/</span><span style="color: #a31515">StackPanel</span><span style="color: blue">&gt;</span></pre><a href="http://11011.net/software/vspaste"></a>
<p>实现BindingValidationError事件，在这里可以根据ValidationErrorEventAction来判断如何进行处理，在界面给出相关的提示信息等，如下代码所示：</p><pre class="code"><span style="color: gray">/// &lt;summary&gt;
/// </span><span style="color: green">Author:TerryLee
</span><span style="color: gray">/// </span><span style="color: green">http://www.cnblogs.com/Terrylee
</span><span style="color: gray">/// &lt;/summary&gt;
</span><span style="color: blue">void </span>txtAge_BindingValidationError(<span style="color: blue">object </span>sender, <span style="color: #2b91af">ValidationErrorEventArgs </span>e)
{
    <span style="color: blue">if </span>(e.Action == <span style="color: #2b91af">ValidationErrorEventAction</span>.Added)
    {
        messageAge.Text = e.Error.Exception.Message;
        messageAge.Validation = <span style="color: blue">false</span>;
    }
    <span style="color: blue">else if </span>(e.Action == <span style="color: #2b91af">ValidationErrorEventAction</span>.Removed)
    {
        messageAge.Text = <span style="color: #a31515">"年龄验证成功"</span>;
        messageAge.Validation = <span style="color: blue">true</span>;
    }
}</pre>
<p><a href="http://11011.net/software/vspaste"></a>好了，现在来看一下最后的验证效果，如下图所示：</p>
<p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="302" alt="TerryLee_0156" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight_13952/TerryLee_0156_3.png" width="561" border="0"></a> </p>
<p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="302" alt="TerryLee_0157" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight_13952/TerryLee_0157_3.png" width="561" border="0"></a> </p>
<p>通过这样的方式，我们就可以<a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html">在Silverlight中对于数据输入做验证</a>了。</p>
<h2>总结</h2>
<p><a href="http://www.cnblogs.com/Terrylee/archive/2008/07/29/binding-data-validation-in-silverlight.html">本文</a>介绍了如何在Silverlight应用程序进行数据验证，希望对大家有所帮助。更多Silverlight 2的文章请参考<a href="http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html">Silverlight 2 相关文章汇总</a>。</p><img src ="http://www.cnblogs.com/Terrylee/aggbug/1256009.html?type=1" width = "1" height = "1" />]]></description></item><item><title>技巧：在Silverlight应用程序中操作Cookie</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/27/tips-set-cookies-in-silverlight-application.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sun, 27 Jul 2008 12:30:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/27/tips-set-cookies-in-silverlight-application.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1252646.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/27/tips-set-cookies-in-silverlight-application.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1252646.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1252646.html</trackback:ping><description><![CDATA[<h2>概述</h2> <p>很多朋友来信问如何在Silverlight 2中操作Cookie，这里专门写篇文章介绍一下。为了实现在Silverlight应用程序中对于Cookie的操作，我们需要借助于HtmlPage.Document对象。</p> <p>在使用HtmlPage.Document之前，请先添加System.Windows.Browser命名空间。本文介绍了如何在Silverlight应用程序中操作Cookie，并在最后给出了一个操作Cookie的公用类，大家可以直接在自己的应用程序中使用。</p> 
<h2>写入Cookie</h2> <p>在Silverlight 应用程序中，我们可以通过HtmlPage.Document.SetProperty方法来设置Cookie或者使用HtmlPage.Document对象的Cookies属性（后面会讲到），如下代码所示：</p><pre class="code"><span style="color: blue">void </span>btnSet_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">RoutedEventArgs </span>e)
{
    <span style="color: #2b91af">DateTime </span>expir = <span style="color: #2b91af">DateTime</span>.UtcNow + <span style="color: #2b91af">TimeSpan</span>.FromDays(7);

    <span style="color: #2b91af">String </span>cookie = <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">"{0}={1};expires={2}"</span>,
    <span style="color: blue">this</span>.txtKey.Text,
    <span style="color: blue">this</span>.txtValue.Text, 
    expir.ToString(<span style="color: #a31515">"R"</span>));

    <span style="color: #2b91af">HtmlPage</span>.Document.SetProperty(<span style="color: #a31515">"cookie"</span>, cookie);
}</pre><a href="http://11011.net/software/vspaste"></a>
<p>这里设置Cookie的过期时间为一周，除了设置过期时间外还可以设置domain、path等，后面的帮助类中你将看到这一点。</p>
<p>如使用下面的界面写入Cookie：</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="408" alt="TerryLee_0146" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight210_D5C8/TerryLee_0146_3.png" width="573" border="0">&nbsp;</p>
<h2>读取Cookie</h2>
<p>我们可以通过HtmlPage.Document.GetProperty方法来获取所有Cookie，另外在HtmlDocument中定义了Cookies属性，已经为我们封装好了GetProperty方法，可以直接使用，它的定义如下代码所示：</p><pre class="code"><span style="color: blue">public sealed class </span><span style="color: #2b91af">HtmlDocument </span>: <span style="color: #2b91af">HtmlObject
</span>{
    <span style="color: blue">public string </span>Cookies
    {
        <span style="color: blue">get</span>{
            <span style="color: #2b91af">HtmlPage</span>.VerifyThread();
            <span style="color: #2b91af">String </span>property = <span style="color: blue">this</span>.GetProperty(<span style="color: #a31515">"cookie"</span>) <span style="color: blue">as </span><span style="color: #2b91af">String</span>;
            <span style="color: blue">if </span>(property != <span style="color: blue">null</span>)
            {
                <span style="color: blue">return </span>property;
            }
            <span style="color: blue">return </span><span style="color: #2b91af">String</span>.Empty;
        }
        <span style="color: blue">set</span>{
            <span style="color: #2b91af">HtmlPage</span>.VerifyThread();
            <span style="color: #2b91af">String </span>str = <span style="color: blue">value</span>;
            <span style="color: blue">if </span>(<span style="color: #2b91af">String</span>.IsNullOrEmpty(str))
            {
                str = <span style="color: blue">string</span>.Empty;
            }
            <span style="color: blue">this</span>.SetProperty(<span style="color: #a31515">"cookie"</span>, str);
        }
    }
}</pre><a href="http://11011.net/software/vspaste"></a>
<p>如使用下面这段代码来获取一个指定Key的Cookie值：</p><pre class="code"><span style="color: blue">void </span>btnRetrieve_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">RoutedEventArgs </span>e)
{
    <span style="color: #2b91af">String</span>[] cookies = <span style="color: #2b91af">HtmlPage</span>.Document.Cookies.Split(<span style="color: #a31515">';'</span>);
    <span style="color: blue">foreach </span>(<span style="color: #2b91af">String </span>cookie <span style="color: blue">in </span>cookies)
    {
        <span style="color: #2b91af">String</span>[] keyValues = cookie.Split(<span style="color: #a31515">'='</span>);
        <span style="color: blue">if </span>(keyValues.Length == 2)
        {
            <span style="color: blue">if </span>(keyValues[0].Trim() == <span style="color: blue">this</span>.txtKey.Text.Trim())
            {
                <span style="color: blue">this</span>.txtValue.Text = keyValues[1];
            }
        }
    }
}</pre><a href="http://11011.net/software/vspaste"></a>
<p>如下图所示：</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="408" alt="TerryLee_0147" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight210_D5C8/TerryLee_0147_3.png" width="573" border="0"> </p>
<h2>删除Cookie</h2>
<p>删除Cookie非常简单，清空Cookie的值并设置它的过期时间，如下代码所示：</p><pre class="code"><span style="color: blue">void </span>btnDelete_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">RoutedEventArgs </span>e)
{
    <span style="color: #2b91af">DateTime </span>expir = <span style="color: #2b91af">DateTime</span>.UtcNow - <span style="color: #2b91af">TimeSpan</span>.FromDays(1);
    <span style="color: blue">string </span>cookie = <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">"{0}=;expires={1}"</span>,
        <span style="color: blue">this</span>.txtKey.Text, expir.ToString(<span style="color: #a31515">"R"</span>));
    <span style="color: #2b91af">HtmlPage</span>.Document.SetProperty(<span style="color: #a31515">"cookie"</span>, cookie);
}</pre>
<h2>Cookie帮助类</h2>
<p>由于在开发中，我们可能会经常用到对于Cookie的操作，我在这里总结了一个简单的Silverlight中操作Cookie帮助类，大家可以直接在自己的项目中使用，主要有如下几个功能：</p>
<p>1.写入Cookie</p>
<p>2.读取Cookie</p>
<p>3.删除Cookie</p>
<p>4.判断Cookie是否存在</p>
<p>当然如果你还有别的需求，可以再进一步完善，完整的代码如下：</p><pre class="code"><span style="color: blue">public class </span><span style="color: #2b91af">CookiesUtils
</span>{
    <span style="color: blue">public static void </span>SetCookie(<span style="color: #2b91af">String </span>key, <span style="color: #2b91af">String </span>value)
    {
        SetCookie(key, value, <span style="color: blue">null</span>, <span style="color: blue">null</span>, <span style="color: blue">null</span>, <span style="color: blue">false</span>);
    }

    <span style="color: blue">public static void </span>SetCookie(<span style="color: #2b91af">String </span>key, <span style="color: #2b91af">String </span>value, <span style="color: #2b91af">TimeSpan </span>expires)
    {
        SetCookie(key, value, expires, <span style="color: blue">null</span>, <span style="color: blue">null</span>, <span style="color: blue">false</span>);
    }

    <span style="color: blue">public static void </span>SetCookie(<span style="color: #2b91af">String </span>key, <span style="color: #2b91af">String </span>value, <span style="color: #2b91af">TimeSpan</span>? expires,
        <span style="color: #2b91af">String </span>path, <span style="color: #2b91af">String </span>domain, <span style="color: blue">bool </span>secure)
    {
        <span style="color: #2b91af">StringBuilder </span>cookie = <span style="color: blue">new </span><span style="color: #2b91af">StringBuilder</span>();
        cookie.Append(<span style="color: #2b91af">String</span>.Concat(key, <span style="color: #a31515">"="</span>, value));

        <span style="color: blue">if </span>(expires.HasValue)
        {
            <span style="color: #2b91af">DateTime </span>expire = <span style="color: #2b91af">DateTime</span>.UtcNow + expires.Value;
            cookie.Append(<span style="color: #2b91af">String</span>.Concat(<span style="color: #a31515">";expires="</span>, expire.ToString(<span style="color: #a31515">"R"</span>)));
        }

        <span style="color: blue">if </span>(!<span style="color: #2b91af">String</span>.IsNullOrEmpty(path))
        {
            cookie.Append(<span style="color: #2b91af">String</span>.Concat(<span style="color: #a31515">";path="</span>, path));
        }

        <span style="color: blue">if </span>(!<span style="color: #2b91af">String</span>.IsNullOrEmpty(domain))
        {
            cookie.Append(<span style="color: #2b91af">String</span>.Concat(<span style="color: #a31515">";domain="</span>, domain));
        }

        <span style="color: blue">if </span>(secure)
        {
            cookie.Append(<span style="color: #a31515">";secure"</span>);
        }

        <span style="color: #2b91af">HtmlPage</span>.Document.SetProperty(<span style="color: #a31515">"cookie"</span>, cookie.ToString()); 
    }

    <span style="color: blue">public static string </span>GetCookie(<span style="color: #2b91af">String </span>key)
    {
        <span style="color: #2b91af">String</span>[] cookies = <span style="color: #2b91af">HtmlPage</span>.Document.Cookies.Split(<span style="color: #a31515">';'</span>);

        <span style="color: #2b91af">String </span>result = (<span style="color: blue">from </span>c <span style="color: blue">in </span>cookies
                        <span style="color: blue">let </span>keyValues = c.Split(<span style="color: #a31515">'='</span>)
                        <span style="color: blue">where </span>keyValues.Length == 2 &amp;&amp; keyValues[0].Trim() == key.Trim()
                        <span style="color: blue">select </span>keyValues[1]).FirstOrDefault();
        <span style="color: blue">return </span>result;
    }

    <span style="color: blue">public static void </span>DeleteCookie(<span style="color: #2b91af">String </span>key)
    {
        <span style="color: #2b91af">DateTime </span>expir = <span style="color: #2b91af">DateTime</span>.UtcNow - <span style="color: #2b91af">TimeSpan</span>.FromDays(1);

        <span style="color: blue">string </span>cookie = <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">"{0}=;expires={1}"</span>,
            key, expir.ToString(<span style="color: #a31515">"R"</span>));

        <span style="color: #2b91af">HtmlPage</span>.Document.SetProperty(<span style="color: #a31515">"cookie"</span>, cookie);
    }

    <span style="color: blue">public static bool </span>Exists(<span style="color: #2b91af">String </span>key, <span style="color: #2b91af">String </span>value)
    {
        <span style="color: blue">return </span><span style="color: #2b91af">HtmlPage</span>.Document.Cookies.Contains(<span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">"{0}={1}"</span>, key, value));
    }
}</pre><a href="http://11011.net/software/vspaste"></a>
<h2>总结</h2>
<p>本文介绍了在Silverlight应用程序中如何操作Cookie，希望对大家有所帮助。</p>
<p>本文示例代码以及CookiesUtils代码下载：</p><iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-e532a87883949712.skydrive.live.com/embedrowdetail.aspx/Public/Examples/TerryLee.SetCookiesInSilverlight.zip" frameborder="0" scrolling="no"></iframe>
<p>更多Silverlight 2的文章请参考<a href="http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html">Silverlight 2 相关文章汇总</a>。</p><img src ="http://www.cnblogs.com/Terrylee/aggbug/1252646.html?type=1" width = "1" height = "1" />]]></description></item><item><title>RadControls for Silverlight发布测试版</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/27/radcontrols-for-silverlight-beta-released.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sun, 27 Jul 2008 12:25:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/27/radcontrols-for-silverlight-beta-released.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1252742.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/27/radcontrols-for-silverlight-beta-released.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1252742.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1252742.html</trackback:ping><description><![CDATA[摘要:  <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_radcontrols.png" alt=""/></div>RadControls for Silverlight是由telerik推出的一个Silverlight控件集，目前发布了Beta版本，包含的控件有：Menu、MediaPlayer、ProgressBarRadCube、Cube、Slider、Upload、TabControl、NumericUpDown、TreeView等。
<br/>
TreeView控件主要功能有：水平数据绑定、拖拽功能、丰富的键盘支持、节点选择功能、动画效果、丰富的样式支持。Upload控件主要功能有：异步文件上传、多文件上传支持、路由事件处理模型、可配置的服务端处理、进度显示。
<br/>
下面看一下其中几个控件的效果。
&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/27/radcontrols-for-silverlight-beta-released.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1252742.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight 2 相关文章汇总</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Mon, 21 Jul 2008 15:51:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1248214.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html#Feedback</comments><slash:comments>32</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1248214.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1248214.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>对自己写的Silverlight 2的相关文章做一下汇总，便于大家直接查找。另外，大家如果有关于Silverlight 2方面的问题，也可以在这里提出，我将尽力为大家解答。
<br/>
1.一步一步学习Silverlight 2系列：主要介绍了Silverlight 2基础，网络与数据访问，图形图像处理、与浏览器的集成等几个方面
<br/>
2.教程文章：实际项目开发中遇到问题的解决，Silverlight 2中技术教程文章。
<br/>
3.技巧诀窍：主要是Silverlight 2在使用过程中的一些小技巧。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/21/silverlight-2-articles.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1248214.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight 2中实现Deep Zoom</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/21/implement-deep-zoom-in-silverlight-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Mon, 21 Jul 2008 15:28:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/21/implement-deep-zoom-in-silverlight-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1248195.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/21/implement-deep-zoom-in-silverlight-2.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1248195.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1248195.html</trackback:ping><description><![CDATA[<h2>概述</h2> <p>对于Deep Zoom想必大家都已经不陌生了，在Silverlight 2 Beta 1时已经提供了支持，并且提供了相应的工具Deep Zoom Composer。Silverlight 2 Beta 2中对于Deep Zoom又有了很大的改进，现在支持基于XML的DeepZoom集合的Manifest文件，Beta2还对DeepZoom加了可扩展的MultiScaleTileSource支持，更新之后的Deep Zoom Composer可以使我们不用编写一行代码直接可视化的生成Deep Zoom应用。</p> <p>本文将简单介绍并分析如何使用Deep Zoom Composer制作Deep Zoom的应用。在开始之前，请先确保安装了如下工具：</p> <p>1.<a href="http://go.microsoft.com/fwlink/?LinkId=120319">Silverlight Tools Beta 2 for Visual Studio 2008</a></p> <p>2.<a href="http://go.microsoft.com/fwlink/?LinkID=120627">Deep Zoom Composer</a></p> <p>总体来说，利用Deep Zoom Composer实现Deep Zoom应用分为如下三个步骤：导入、组合、导出。这三个步骤在打开Deep Zoom Composer之后可以看到：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="55" alt="TerryLee_0133" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0133_6.png" width="377" border="0"> </p> <h2>导入</h2> <p>第一步导入图片，可以点击“Add Image”按钮，一次选择想要导入的图片，如下图所示：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="TerryLee_0134" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0134_3.png" width="580" border="0"> </p> <p>导入图片后效果如下图所示：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="TerryLee_0135" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0135_3.png" width="580" border="0">&nbsp; </p> <h2>组合</h2> <p>经过了第一步导入图片后，我们可以对图片进行组合，选择需要加入到Deep Zoom应用中的图片，并调整其位置及大小，如果在第一步没有导入图片，同样可以通过“Add Image”按钮来导入。如下图所示：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="TerryLee_0140" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0140_3.png" width="580" border="0"> </p> <p>我们方便的对图片的布局等进行调整，如下图所示：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="TerryLee_0141" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0141_3.png" width="580" border="0"> </p> <h2>导出</h2> <p>在对图片组合完成后，我们可以进行导出操作，并设置一些导出规则，如应用的名称，导出的路径等，这里Deep Zoom Composer提供了一个非常方便的选项，我们可以直接导出图片及生成Silverlight项目，如下图所示：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="440" alt="TerryLee_0142" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0142_3.png" width="580" border="0"> </p> <h2>效果</h2> <p>经过以上三步之后，就可以直接生成Deep Zoom应用了，不用编写一行代码，生成的Silverlight项目结构如下：</p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="357" alt="TerryLee_0143" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/4bcfb0effccf_13391/TerryLee_0143_3.png" width="366" border="0"> </p> <p>可以直接打开DeepZoomProjectTestPage.html查看最终的效果，如下所示：</p><iframe style="width: 580px; height: 420px" src="http://silverlight.services.live.com/invoke/40565/MyAlbum/iframe.html" frameborder="0"></iframe> <h2>实际应用</h2> <p>新浪音乐在微软 4 月 14 日 “Silverlight 锋芒彰显” 发布会中展示了新浪音乐最新的乐库原型，其中应用了 Silverlight 中的 Deep Zoom 技术。更详细的情形大家可以参考这篇文章中的视频：</p> <p><a href="https://blogs.msdn.com/jijia/archive/2008/04/16/sina-musicmap-details.aspx">新浪音乐地图之 Deep Zoom 应用</a></p> <h2>结束语</h2> <p>本文简单的介绍了在Silverlight 2中实现Deep Zoom的应用，希望对大家有所帮助。 </p><img src ="http://www.cnblogs.com/Terrylee/aggbug/1248195.html?type=1" width = "1" height = "1" />]]></description></item><item><title>三套Silverlight 2 Beta 2的控件样式</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/20/three-silverlight-2-beta-2-control-style.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sun, 20 Jul 2008 15:45:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/20/three-silverlight-2-beta-2-control-style.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1247253.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/20/three-silverlight-2-beta-2-control-style.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1247253.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1247253.html</trackback:ping><description><![CDATA[<p><a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>在Silverlight 2 Beta 1的时候就完成了<a href="http://blogs.msdn.com/corrinab/archive/2008/03/11/silverlight-2-control-skins.aspx">四套非常酷的控件样式</a>，这些样式我曾经在个人博客中<a href="http://www.cnblogs.com/Terrylee/archive/2008/03/13/great-new-silverlight-control-skins.html">推荐</a>过。当Silverlight 2升级到Beta 2时，由于引入了视觉状态管理机制，这些样式已经不能再使用。<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>在第一时间将其中的两套样式<a href="http://blogs.msdn.com/corrinab/archive/2008/06/16/8602865.aspx">升级</a>到了Silverlight 2 Beta 2下，如下图所示：</p> <p>名称：Flat&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.corrina_b.members.winisp.net/skinsb2/flat/flatStyleProject.zip">下载</a> | <a href="http://www.corrina_b.members.winisp.net/skinsb2/flat/default.html">效果</a></p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="558" alt="TerryLee_0128" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight2Beta2_14944/TerryLee_0128_3.png" width="560" border="0"> </p> <p>名称：Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.corrina_b.members.winisp.net/skinsb2/red/redStyleProject.ziphttp">下载</a> | <a href="://www.corrina_b.members.winisp.net/skinsb2/red/default.html">效果</a></p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="558" alt="TerryLee_0129" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight2Beta2_14944/TerryLee_0129_3.png" width="560" border="0"> </p> <p>在Silverlight 2 Beta 1时，我在项目中使用了Bubbly样式，于是给<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>发信，希望她能提供Bubbly样式的升级版本，由于此前<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>非常忙，在本周末时，她终于完成了Bubbly样式的升级，并在第一时间发到了我的邮箱中，非常感谢<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>。Bubbly样式的效果如下：</p> <p>名称：Bubbly&nbsp;&nbsp;&nbsp; <a href="http://www.corrina_b.members.winisp.net/SkinsB2/Bubbly/BubblyStyleProject.zip">下载</a> | <a href="http://www.corrina_b.members.winisp.net/SkinsB2/Bubbly/default.html">效果</a></p> <p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="567" alt="TerryLee_0130" src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/WindowsLiveWriter/Silverlight2Beta2_14944/TerryLee_0130_3.png" width="560" border="0">&nbsp;</p> <p>更多的信息大家可以参考<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>的两篇文章：</p> <p><a href="http://blogs.msdn.com/corrinab/archive/2008/07/20/8757236.aspx">Bubbly Skin Updated for Beta 2</a></p> <p><a href="http://blogs.msdn.com/corrinab/archive/2008/06/16/8602865.aspx">Red and Flat Skins Updated for Beta 2</a></p> <p>最后再次感谢<a href="http://blogs.msdn.com/corrinab/archive/tags/Corrina+Barber/default.aspx">Corrina Barber</a>给我们带来如此漂亮的控件样式。</p><img src ="http://www.cnblogs.com/Terrylee/aggbug/1247253.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight 2应用程序中XAP文件揭秘</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/11/xap-file-revelation-in-silverlight-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Fri, 11 Jul 2008 14:56:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/11/xap-file-revelation-in-silverlight-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1241152.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/11/xap-file-revelation-in-silverlight-2.html#Feedback</comments><slash:comments>38</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1241152.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1241152.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>XAP文件是Silverlight 2应用程序编译打包后的一个文件，它是一个标准的zip压缩文件，包括了Silverlight 2应用程序所需的一切文件，如程序集、资源文件等。本文将对Silverlight中的XAP文件进行详细的说明。
1.XAP文件是什么
2.如何使用XAP文件
3.XAP文件如何执行
4.XAP文件包含什么
5.XAP文件如何生成&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/11/xap-file-revelation-in-silverlight-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1241152.html?type=1" width = "1" height = "1" />]]></description></item><item><title>技巧：在Silverlight中如何访问外部xap文件中UserControl</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/10/access-usercontrol-in-external-xap-file-from-silverlight-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Thu, 10 Jul 2008 14:10:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/10/access-usercontrol-in-external-xap-file-from-silverlight-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1240297.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/10/access-usercontrol-in-external-xap-file-from-silverlight-2.html#Feedback</comments><slash:comments>40</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1240297.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1240297.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>众所周知，在Silverlight 2开始每个项目编译后都会打包成为一个xap文件，如果我们要访问当前xap文件中的UserControl比较容易，那我们如何访问一个外部xap文件中的内容呢？甚至于如何访问一个互联网上的xap文件呢？<br><br>本文将介绍在Silverlight中如何访问外部xap文件中UserControl。<br><br/>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/10/access-usercontrol-in-external-xap-file-from-silverlight-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1240297.html?type=1" width = "1" height = "1" />]]></description></item><item><title>技巧：Silverlight应用程序中如何获取ASP.NET页面参数</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/09/tips-get-parameters-from-aspnet-page.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 09 Jul 2008 15:49:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/09/tips-get-parameters-from-aspnet-page.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1239609.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/09/tips-get-parameters-from-aspnet-page.html#Feedback</comments><slash:comments>44</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1239609.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1239609.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>在开发Silverlight应用程序时，我们经常会遇到这样一种情况，需要在Silverlight应用程序的UserControl中获取ASP.NET页面参数，这个参数不一定来自于当前Silverlight应用程序的宿主页面，而有可能来自于其它的ASP.NET页面。<br><br>本文我们简单的介绍一下如何在Silverlight应用程序中获取ASP.NET页面参数。<br><br/>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/09/tips-get-parameters-from-aspnet-page.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1239609.html?type=1" width = "1" height = "1" />]]></description></item><item><title>谈谈Silverlight 2中的视觉状态管理 Part1</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/08/silverlight-2-visual-state-manager-part-1.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 08 Jul 2008 13:11:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/08/silverlight-2-visual-state-manager-part-1.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1238458.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/08/silverlight-2-visual-state-manager-part-1.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1238458.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1238458.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>在WPF和Silverlight中的控件模板支持自定义控件的观感，所谓的外观，指控件的视觉效果；而感觉则是控件交互的响应性，如在控件上按下鼠标、控件获得焦点等状态的改变。微软在Silverlight 2 Beta 2中引进了一个新的概念视觉状态管理（Visual State Manager），为我们创建交互性的控件模板提供了极大的方便。接下来我将会用几篇文章来介绍一下Silverlight 2中的视觉状态管理。<br><br>在定义控件时，我们需要严格区分控件的视觉效果和控件的逻辑，这样当我们修改控件外观时将不会影响控件逻辑。Silverlight 2 Beta 2中提出的部件和状态模型，能够很好的解决这一问题，本文我们先来看一些基本的概念。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/08/silverlight-2-visual-state-manager-part-1.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1238458.html?type=1" width = "1" height = "1" />]]></description></item><item><title>技巧：在Silverlight 2应用程序中切换用户控件</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/02/tip-switch-usercontrol-in-silverlight-2-application.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 02 Jul 2008 13:28:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/02/tip-switch-usercontrol-in-silverlight-2-application.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1234295.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/02/tip-switch-usercontrol-in-silverlight-2-application.html#Feedback</comments><slash:comments>24</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1234295.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1234295.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>大家都知道，在Silverlight 2应用程序中，每个应用程序将生成一个xap文件，每一个xap文件中只能设置一个起始的用户控件。如果我们有多个用户控件，需要在不同的ASP.NET页面中加载，最简单的方法莫过于针对多个用户控件分别建立对应的Silverlight项目，但这种方式有很多的缺点，如我们的样式文件需要在多个项目中进行拷贝。<br><br>本文将介绍利用初始化参数进行用户控件的切换这一技巧。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/02/tip-switch-usercontrol-in-silverlight-2-application.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1234295.html?type=1" width = "1" height = "1" />]]></description></item><item><title>在Silverlight 2应用程序中集成Virtual Earth</title><link>http://www.cnblogs.com/Terrylee/archive/2008/07/01/integrate-virtual-earth-in-silverlight-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 01 Jul 2008 13:52:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/07/01/integrate-virtual-earth-in-silverlight-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1233572.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/07/01/integrate-virtual-earth-in-silverlight-2.html#Feedback</comments><slash:comments>39</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1233572.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1233572.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_virtualearth.png" alt=""/></div>Virtual Earth是什么，我想不用多做解释了。微软在推出自己的Virtual Earth之后，开放了大量的APIs，使得我们可以方便集成到自己的应用程序中。<br>本文将介绍如何在自己的Silverlight 2应用程序中集成Virtual Earth，主要包括两部分内容：<br>1.在HTML中集成Virtual Earth<br>2.在Silverlight中集成Virtual Earth<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/07/01/integrate-virtual-earth-in-silverlight-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1233572.html?type=1" width = "1" height = "1" />]]></description></item><item><title>详解Silverlight 2中的独立存储（Isolated Storage）</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/29/silverlight-2-beta-2-isolated-storage.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sat, 28 Jun 2008 18:19:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/29/silverlight-2-beta-2-isolated-storage.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1231853.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/29/silverlight-2-beta-2-isolated-storage.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1231853.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1231853.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>独立存储（Isolated Storage）是Silverlight 2中提供的一个客户端安全的存储，它是一个与Cookie机制类似的局部信任机制。独立存储机制的APIs 提供了一个虚拟的文件系统和可以访问这个虚拟文件系统的数据流对象。Silverlight中的独立存储是基于 .NET Framework中的独立存储来建立的，所以它仅仅是.NET Framework中独立存储的一个子集。<br>1.使用独立存储<br>2.增加配额<br>3.文件存在何处<br>4.禁用独立存储<br>5.独立存储配置&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/29/silverlight-2-beta-2-isolated-storage.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1231853.html?type=1" width = "1" height = "1" />]]></description></item><item><title>在Silverlight 2中实现超酷图表</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/21/1227371.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sat, 21 Jun 2008 08:02:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/21/1227371.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1227371.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/21/1227371.html#Feedback</comments><slash:comments>88</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1227371.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1227371.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_chart.png" alt=""/></div>Silverlight对于图形图像处理方面，从1.0时代起就给予了很强大的支持，所以我们可以在Silverlight中实现非常棒的各种统计图表，然而现在有了一些开源的项目，使得这项工作更加的简单。<br><br>本文我将介绍一个开源项目visifire，使用它可以在Silverlight 2中实现超酷的图表。<br><br/>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/21/1227371.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1227371.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight 2中多语言支持实现（下）</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Thu, 19 Jun 2008 15:00:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1226237.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part2.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1226237.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1226237.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>最近项目要在Silverlight 2应用程序中实现本地化，原以为这个过程非常简单，却没想到实现的时候一波三折，好在结果还算不错。需求是这样的，用户第一次访问的时候，默认为英文，当用户选择一种显示语言后，记录在本地，下次用户访问时直接显示已经选择的语言。现在我把整个实现的过程记录下来，希望对大家有所帮助。 <br><br>本文为Silverlight 2中多语言支持实现第二部分。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1226237.html?type=1" width = "1" height = "1" />]]></description></item><item><title>Silverlight 2中多语言支持实现（上）</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part1.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 18 Jun 2008 17:05:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part1.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1225088.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part1.html#Feedback</comments><slash:comments>39</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1225088.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1225088.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>最近项目要在Silverlight 2应用程序中实现本地化，原以为这个过程非常简单，却没想到实现的时候一波三折，好在结果还算不错。需求是这样的，用户第一次访问的时候，默认为英文，当用户选择一种显示语言后，记录在本地，下次用户访问时直接显示已经选择的语言。现在我把整个实现的过程记录下来，希望对大家有所帮助。<br><br>本文为Silverlight 2中多语言支持实现第一部分。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/19/localization-in-silverlight-2-beta-2-part1.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1225088.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（35）：升级Silverlight 2 Beta 1应用程序到Beta 2</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/18/upgrade-silverlight-application-from-beta1-to-beta2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 17 Jun 2008 16:34:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/18/upgrade-silverlight-application-from-beta1-to-beta2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1224323.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/18/upgrade-silverlight-application-from-beta1-to-beta2.html#Feedback</comments><slash:comments>53</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1224323.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1224323.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>Silverlight 2 Beta 2发布之后，在原来的Beta 1基础之上有了很多的改变。本文总结一下Silverlight 2 Beta1 和Beta 2之间的变化，以及升级Silverlight 2.0 Beta 1应用程序到Beta 2过程中可能会遇到的一些问题。<br>控件变化<br>网络通信<br>浏览器集成<br>隔离存储<br>其它API&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/18/upgrade-silverlight-application-from-beta1-to-beta2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1224323.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（34）：使用Silverlight Streaming托管Silverlight应用程序</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/16/using-silverlight-streaming-hosting-silverlight-application.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Mon, 16 Jun 2008 15:25:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/16/using-silverlight-streaming-hosting-silverlight-application.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1223404.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/16/using-silverlight-streaming-hosting-silverlight-application.html#Feedback</comments><slash:comments>24</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1223404.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1223404.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>Silverlight Steaming 是微软 Live 平台中的免费发布视频以及托管 Silverlight 应用的产品。今年 MIX08 大会上微软发布了 Silverlight Streaming 的 Beta 版本，Silverlight Streaming 主要有以下特点：<br>1. 高达 10G 的免费空间，只需要一个 Windows Live ID 就可以免费申请高达 10G 的存储空间。<br>2. 支持高达105M 的应用，单个应用或者视频的大小能够支持高达105M。 <br>3. 支持高达 1.4M 的视频码流，在视频码流的支持上，Silverlight Streaming 也支持高达 1.4M/bps，给用户提供更加清晰的视频体验。 &nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/16/using-silverlight-streaming-hosting-silverlight-application.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1223404.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（33）：Silverlight 2应用Web Service两例</title><link>http://www.cnblogs.com/Terrylee/archive/2008/06/15/using-web-servic-in-silverlight-2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Sun, 15 Jun 2008 06:55:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/06/15/using-web-servic-in-silverlight-2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1222595.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/06/15/using-web-servic-in-silverlight-2.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1222595.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1222595.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>我们知道，在Silverlight 2中提供了丰富的网络通信API，包括支持SOAP服务、REST服务、基于HTTP通信、Socket通信等。本文我将通过几个示例来演示如何在Silverlight 2中应用Web Service实现文件上传和电子邮件发送。 <br/><br>1.使用Web Service上传文件<br>2.使用Web Service发送电子邮件&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/06/15/using-web-servic-in-silverlight-2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1222595.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列文章</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-Tutorials.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Fri, 21 Mar 2008 14:50:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-Tutorials.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1097542.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-Tutorials.html#Feedback</comments><slash:comments>204</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1097542.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1097542.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div>
Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>利用这个周末的时间，简单的写了一下Silverlight 2的一些入门知识，希望对大家有用，已完成<font color="#FF0000">32</font>篇。<br/>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-Tutorials.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1097542.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（32）：图形图像综合实例—“功夫之王”剧照播放</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-part32.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Fri, 21 Mar 2008 14:42:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-part32.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1117106.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-part32.html#Feedback</comments><slash:comments>51</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1117106.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1117106.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文我们再实现一个图形图像实例——图片播放，并利用Storyboard实现一些动画效果。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/21/Silverlight2-step-by-step-part32.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1117106.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（31）：图形图像综合实例—实现水中倒影效果</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/20/Silverlight2-step-by-step-part13-Samples-Reflections.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Thu, 20 Mar 2008 10:00:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/20/Silverlight2-step-by-step-part13-Samples-Reflections.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1115173.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/20/Silverlight2-step-by-step-part13-Samples-Reflections.html#Feedback</comments><slash:comments>48</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1115173.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1115173.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文将综合前面几篇关于图形图像处理的技术，如画刷、半透明遮罩、Transform等，实现一个水中倒影效果的示例。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/20/Silverlight2-step-by-step-part13-Samples-Reflections.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1115173.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（30）：使用Transform实现更炫的效果（下）</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part2.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 19 Mar 2008 11:00:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part2.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1113655.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part2.html#Feedback</comments><slash:comments>41</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1113655.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1113655.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文为使用Transform实现更炫的效果第二部分<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part2.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1113655.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（29）：使用Transform实现更炫的效果（上）</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part1.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Wed, 19 Mar 2008 10:43:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part1.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1113636.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part1.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1113636.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1113636.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文为使用Transform实现更炫的效果第一部分。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/19/Silverlight2-step-by-step-part29-Transform-part1.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1113636.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（28）：图片处理</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part28-Imaging.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 18 Mar 2008 12:11:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part28-Imaging.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1112037.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part28-Imaging.html#Feedback</comments><slash:comments>51</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1112037.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1112037.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文将介绍在Silverlight 2中进行图片的处理，包括图片的拉伸、裁剪、半透明遮罩等内容。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part28-Imaging.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1112037.html?type=1" width = "1" height = "1" />]]></description></item><item><title>一步一步学Silverlight 2系列（27）：使用Brush进行填充</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part27-Silverlight-Brushes.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Tue, 18 Mar 2008 10:18:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part27-Silverlight-Brushes.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1111912.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part27-Silverlight-Brushes.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1111912.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1111912.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_silverlight2.gif" alt=""/></div><br>Silverlight 2 Beta 1版本发布了，无论从Runtime还是Tools都给我们带来了很多的惊喜，如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython，对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。<br/><br/>本文将介绍Silverlight中的画刷。&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/18/Silverlight2-step-by-step-part27-Silverlight-Brushes.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1111912.html?type=1" width = "1" height = "1" />]]></description></item><item><title>[推荐]Silverlight 2 开发者海报</title><link>http://www.cnblogs.com/Terrylee/archive/2008/03/17/Silverlight-2-developer-poster.html</link><dc:creator>TerryLee</dc:creator><author>TerryLee</author><pubDate>Mon, 17 Mar 2008 15:44:00 GMT</pubDate><guid>http://www.cnblogs.com/Terrylee/archive/2008/03/17/Silverlight-2-developer-poster.html</guid><wfw:comment>http://www.cnblogs.com/Terrylee/comments/1110647.html</wfw:comment><comments>http://www.cnblogs.com/Terrylee/archive/2008/03/17/Silverlight-2-developer-poster.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/Terrylee/comments/commentRss/1110647.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Terrylee/services/trackbacks/1110647.html</trackback:ping><description><![CDATA[摘要: <div style="float:right;padding-right:5px;"><img src="http://www.cnblogs.com/images/cnblogs_com/Terrylee/120066/o_SilverlightPoster.png" alt=""/></div>从Brad Abrams的Blog上看到了一张Silverlight 2开发者海报，非常酷，拿出来与大家分享。<br>[JPG版本 5.8MB] <br><br>[PNG版本 6.5MB] <br><br>[TIF版本 19.9 MB]<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/Terrylee/archive/2008/03/17/Silverlight-2-developer-poster.html'>阅读全文</a><img src ="http://www.cnblogs.com/Terrylee/aggbug/1110647.html?type=1" width = "1" height = "1" />]]></description></item></channel></rss>