<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--Generated by RSSMaster 1.0 (http://www.softtool.info/rssmaster)--><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>VB Feeds</title>
    <link>http://vbfeeds.com/</link>
    <description>VB Feeds - All Visual Basic Feeds in One Place!</description>
    <generator>RSSMaster 1.0 (http://www.softtool.info/rssmaster)</generator>
    <language>en-US</language>
    <copyright>Copyright 2005 vbfeeds.com</copyright>
    <managingEditor>Serge Baranovsky &lt;sergeb@vbcity.com&gt;</managingEditor>
    <pubDate>Sun, 05 Jul 2009 12:00:00 -07:00</pubDate>
    <lastBuildDate>Sun, 05 Jul 2009 11:33:04 -07:00</lastBuildDate>
    <image>
      <url>http://vbfeeds.com/images/vbfeeds100x30.gif</url>
      <title>VB Feeds</title>
      <link>http://vbfeeds.com/</link>
      <width>100</width>
      <height>30</height>
      <description>VB Feeds - All Visual Basic Feeds in One Place!</description>
    </image>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/vbfeeds" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/vbfeeds" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fvbfeeds" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
      <title>How To Animate a Gradient Brush</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: XTab (Ged Mead)&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:Calibri;"&gt;
&lt;p&gt;In &lt;a href="http://cs.vbcity.com/blogs/xtab/archive/2009/07/03/how-to-animate-a-textbox-in-windows-forms.aspx"&gt;the previous blog item&lt;/a&gt; in this series, I created a simple Animation in Visual Basic Code. This used a DoubleAnimation to animate the thickness of the gradient border. That example doesn&amp;#39;t even begin to scratch the surface of what you can achieve with WPF Animation and - as you have seen demonstrated in the previous items - how you can include these animations in Windows Forms. &lt;/p&gt;
&lt;p&gt;In this part, we will look at a slightly more complex animation. Or at least one that seems complex at first, but a quick analysis reveals that it is really rather simple and easily created by writing the XAML by hand.&lt;/p&gt;
&lt;p&gt;In order to see the animation effect, I recommend you download the project attached to this blog item and run it. When you click the Button if there is no text in the TextBox, two animations will run. The first is the resize border one that was covered in the previous blog. The second animation changes the position of each of the colors in the gradient to give the impression of movement. &lt;/p&gt;
&lt;p&gt;If you are new to WPF, you perhaps won&amp;#39;t be too comfortable with the idea of hand-writing the XAML. You can of course use a tool, such as Expression Blend, to create the XAML for you. A time-limited trial version of Expression Blend is available, so if you decide that the hand-written route isn&amp;#39;t for you, then you can certainly use Blend instead. (That said, there is something of a learning curve involved in getting to grips with Blend too - especially if, like me, you have more of a Developer mindset than Designer). &lt;/p&gt;
&lt;p&gt;One of the reasons I decided to add this part to the blog was that sometimes you need to start the animation running from some user action. In this case, the user action will be the clicking of a button on a totally unrelated UI - a Windows Form, as it happens (although of course the same approach works fine with an all-WPF application too.) &lt;/p&gt;
&lt;p&gt;So, firstly, here is the XAML that goes in the WPF UserControl to create the moving gradient effect:&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;Storyboard&lt;/font&gt;&lt;font color="#ff0000"&gt; x&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;Key&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;MoveColors&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&amp;nbsp; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops&lt;img src="http://cs.vbcity.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[5].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[4].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[3].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[2].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[1].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops[0].Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;Storyboard&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;That may look like a lot of typing, but there&amp;#39;s a whole lot of repetition in there, which means you can copy and paste the majority of it, then just make minor tweaks.&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;Storyboard&lt;/font&gt;&lt;font color="#ff0000"&gt; x&lt;/font&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;font color="#ff0000"&gt;Key&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;MoveColors&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The first line shown above simply creates a new Storyboard instance and assigns it a name, or Key, that we can use to reference it.&lt;/p&gt;
&lt;p&gt;The next block creates a DoubleAnimation.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#a31515"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;By&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.2&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Duration&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:1.3&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;&amp;nbsp; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;GradBorder&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;Storyboard.TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;BorderBrush.GradientStops&lt;img src="http://cs.vbcity.com/emoticons/emotion-14.gif" alt="Devil" /&gt;.Offset&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0:0:0.6&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Most of us tend not to think of Types such as Double numeric values when we are thinking about animation. In our mind&amp;#39;s eye we are more likely to picture the physical result of such a change - the size of an element or its position, its shape or its color, perhaps. But it is perfectly possible to change the value of a Double Type, taking a set amount of time to make the change, and then having this change be visible to a user by assigning it to a property of an element that takes type Double. &lt;/p&gt;
&lt;p&gt;That&amp;#39;s exactly what we are doing here - changing the value of the Double that is being used to set the position of a GradientStop in a LinearGradientBrush. Here&amp;#39;s a more detailed breakdown of what&amp;#39;s going on: &lt;/p&gt;
&lt;p&gt;&lt;b&gt;By &lt;/b&gt;changes the Double value by the amount stated - in this case by 0.2. In our demonstration animation this moves one of the colors that make up the gradient 0.2 along the gradient&amp;#39;s linear scale.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Duration&lt;/b&gt; sets the length of time taken to change the value from its starting value to the end of the By value. In this case it is 1.3 seconds.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;AutoReverse&lt;/b&gt; set to True will ensure that the value returns to its starting value by the end of the Duration. In our gradient example this will cause the color to move 0.2 out and then return the same 0.2 distance back.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Storyboard.TargetName &lt;/b&gt;uses the WPF Attached Property syntax to identify which element is the target of the animation. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Storyboard.TargetProperty&lt;/b&gt; in a similar way identifies the property of the target element which is to be animated. See the further explanation below about the identification of the property. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;BeginTime&lt;/b&gt; is an optional pause feature. The animation will only begin after an initial pause of (in this example) 0.6 seconds. &lt;/p&gt;
&lt;p&gt;The TargetProperty in each of these DoubleAnimations is the Offset value of a GradientStop. If you look at the XAML which creates the BrightGradient LinearGradientBrush, you will see that it contains seven colors, each of which has its position in the gradient assigned by its Offset value. All we are doing in this animation is shunting each of the colors along by a value of 0.2 and this creates the effect of the color movement. &lt;/p&gt;
&lt;p&gt;The particular block of XAML shown above animates the last GradientStop, which has an index of 6 - the index being zero based. When you look at the six DoubleAnimations which follow that one, the only difference is that the Index has changed so that the next GradientStop is targeted. So by copying and pasting the first DoubleAnimation, pasting it six times and then changing the value of the Index, this complex looking animation is shown to be very basic in reality. &lt;/p&gt;
&lt;p&gt;All that remains now is to wire up this Storyboard in the code-behind.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Public&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt; MoveColors()&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Dim&lt;/font&gt; SB &lt;font color="#0000ff"&gt;As&lt;/font&gt; Storyboard = &lt;font color="#0000ff"&gt;CType&lt;/font&gt;(FindResource(&lt;font color="#a31515"&gt;&amp;quot;MoveColors&amp;quot;&lt;/font&gt;), Storyboard)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;If&lt;/font&gt; SB &lt;font color="#0000ff"&gt;IsNot&lt;/font&gt; &lt;font color="#0000ff"&gt;Nothing&lt;/font&gt; &lt;font color="#0000ff"&gt;Then&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SB.Begin(&lt;font color="#0000ff"&gt;&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;Else&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(&lt;font color="#a31515"&gt;&amp;quot;Can&amp;#39;t find storyboard&amp;quot;&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;If&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;End&lt;/font&gt; &lt;font color="#0000ff"&gt;Sub&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The FindResource method is very useful in these kind of situations in WPF. I used it in the original example to change the LinearGradientBrush on the Border element and now we can employ it to find the animation. It allows you to dig into the XAML, find the markup you need for a particular task and use it. In this cas, the Resource we are looking for is the Storyboard that has a Key of &amp;#39;MoveColors&amp;#39; - the one we have just dissected above. &lt;/p&gt;
&lt;p&gt;Over in the Windows Forms Form1 code, the Button click has only one additional line from where we left it at the end of the previous blog. This calls the MoveColors procedure shown above, which in turn runs the animation. The additional line is:&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; MovingGradientTextBox1.MoveColors()&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;You can see the remaining unchanged Button Click event code in the sample project attached.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=163" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/oSrr0D5m4fk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/oSrr0D5m4fk/post.aspx</link>
      <author>XTab (Ged Mead) - XTab</author>
      <pubDate>Sun, 05 Jul 2009 19:20:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7092</feedburner:origLink></item>
    <item>
      <title>Deborah Kurata's Blogging Now</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Mike McIntyre&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;Long time Visual Basic and .Net expert Deborah Kurata started blogging!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/blogs/deborahk/default.aspx" class="null"&gt;Deborahs Developer Mindscape&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=162" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/QYfDKspm1U8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/QYfDKspm1U8/post.aspx</link>
      <author>Mike McIntyre - Mike McIntyre</author>
      <pubDate>Sat, 04 Jul 2009 13:46:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7091</feedburner:origLink></item>
    <item>
      <title>Welcome to Deborah’s Developer MindScape</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; So many things to think about, so little time.    Deciding to be a developer with .NET is deciding to be a life-learner. There is no one manageable set of things to learn and then you are done. Rather, you spend every day learning new, better, more efficient ways to accomplish your task.    I love to code. I love to learn.    So I  finally  decided to start blogging about these things I am learning and share the things I know with others.    Enjoy!... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/7iS6eymitIk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/7iS6eymitIk/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Thu, 02 Jul 2009 23:06:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7089</feedburner:origLink></item>
    <item>
      <title>Lambda Expressions: Finding Differences in Two Lists</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; One of my favorite features in .NET 3.5 is lambda expressions. This example demonstrates how to use lambda expressions:        To compare items in two lists and find which items in one list are not in the other. For example: {1, 2, 3}, {2, 3, 4}. {1} is only in the first list.       To display the contents of the resulting set.       First, define two lists:     List&amp;lt;int&amp;gt; list1 = new List&amp;lt;int&amp;gt;() { 1, 6, 8 };       List&amp;lt;int&amp;gt; list2 = new List&amp;lt;int&amp;gt;() { 2, 6 };      The follo... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/p8JHCagiVCg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/p8JHCagiVCg/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 00:19:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7088</feedburner:origLink></item>
    <item>
      <title>XML Literals: Creating an XML File</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; One of my favorite features in VB 9 (Visual Studio 2008) is XML Literals. This example demonstrates how insanely easy it is to build an XML file using VB.    This code builds xml from a list of customers.     Dim customerXml As XElement = _         &amp;lt;customers&amp;gt;       &amp;#160;&amp;#160; &amp;lt;%= From c In custList _        &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Select &amp;lt;customer&amp;gt;        &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;LastName&amp;g... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/O1WjArpIkCg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/O1WjArpIkCg/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 00:36:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7087</feedburner:origLink></item>
    <item>
      <title>Generics: Building a List of Customers</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; Often times applications require lists of things: lists of customers, lists of experiments, lists of accounts and so on. The generic lists provided in .NET 2.0 made working with these lists easy. And the list initializers in C# and the object initializers in VB make lists easier still.    As an example, here is a first draft of a simple Customer class.    In C#:&amp;#160;&amp;#160;      public class Customer      {       &amp;#160;&amp;#160;&amp;#160; public int CustomerId { get; set; }       &amp;#160;&amp;#160;&amp;#160; pub... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/P8_jbX2QfAs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/P8_jbX2QfAs/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 15:23:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7086</feedburner:origLink></item>
    <item>
      <title>OfType: Finding Objects of a Particular Type</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; I ran across the OfType feature a few months ago and find it to be very useful. OfType is one of the many extension methods on IEnumerable that was provided with .NET 3.5.    If you ever need to search through a list for a particular type of object, then this feature is for you. The most common scenario for this feature is in working with the user interface. Say you want to hook up a particular event handler to every Button on your form. Or you want to go through your form and clear every TextBo... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/N56qw4dV-pY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/N56qw4dV-pY/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 15:52:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7085</feedburner:origLink></item>
    <item>
      <title>Reflection: Displaying a Form By Name</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; There may be situations when you want to display a form by its form name. For example, say that you retain your menu options in a database so they can be customized. You want to associated a menu option with the display of a particular form. So you store the form name in the table.    But then you need a way to show that form at runtime. For this, you need reflection.    In VB:     Dim formName as string = &amp;quot;CustomerForm&amp;quot;      Dim assemblyName As String = My.Application.Info.AssemblyNam... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/JaQ8k61MHlk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/JaQ8k61MHlk/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 16:20:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7084</feedburner:origLink></item>
    <item>
      <title>LINQ: Defining a List of Integers</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; Defining a list of integers in your code involves lots of tedious typing.    In VB, you can’t do this:      &amp;#39;Dim numberList As new List(Of Integer) = {1, 2, 3, 4, 5, 6, 7, 8, 9}       So you have to either add numbers to the list manually, or create an array, which still involves lots of tedious typing:     Dim numberList() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9}     With .NET 3.5, you can instead use the Range method of the Enumerable class that is part of the System.Linq namespace.    In ... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/S_x-9pMTNrY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/S_x-9pMTNrY/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 16:39:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7083</feedburner:origLink></item>
    <item>
      <title>MVP Summit 2009</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; At the MVP Summit this year,  Beth Massi  interviewed me for the  “I’m a VB” series .  Alan Cooper  introduced me to VB back around 1992 (VB 2.0), so it was fun to talk about my favorite things in VB.    Any thoughts on the interview? I’d love to hear them!... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/BbvvbqfsMGo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/BbvvbqfsMGo/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 16:48:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7082</feedburner:origLink></item>
    <item>
      <title>Lambdas: Aggregating Strings</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; Looping through a list to append strings is often more challenging than it should be. For example…    In C#:     string emailAddresses=string.Empty;      foreach (Customer c in custList)       {       &amp;#160;&amp;#160;&amp;#160; emailAddresses += c.EmailAddress + &amp;quot;;&amp;quot;;       }     In VB:     Dim emailAddresses As String = String.Empty      For Each c As Customer In custList       &amp;#160;&amp;#160;&amp;#160; emailAddresses &amp;amp;= c.EmailAddress &amp;amp; &amp;quot;;&amp;quot;       Next      Both of these examples po... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/RbvrfbJIVLM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/RbvrfbJIVLM/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 17:24:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7081</feedburner:origLink></item>
    <item>
      <title>XML Literals: Simplifying Strings</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Deborah Kurata&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; You have probably heard that the next version of VB will no longer require line continuation characters in most situations. This is very good news for those of us that do not like typing underscore characters.    But in the mean time, what do we do if we have a long string, like a SQL string:     Dim mySelect As String = &amp;quot;Select CustomerId, &amp;quot; &amp;amp; _       &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160... [For the complete article see the Orignal Post link below] ...&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/QsvnQVGYFoo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/QsvnQVGYFoo/post.aspx</link>
      <author>Deborah Kurata - Deborah Kurata</author>
      <pubDate>Fri, 03 Jul 2009 17:51:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7080</feedburner:origLink></item>
    <item>
      <title>I’ll be Speaking at DevTeach Vancouver – Be There!</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Beth Massi&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.devteach.com/Register.aspx" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.devteach.com/images/Stimulis160X160.gif" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’m headed up to Vancouver June 8-12 for &lt;a href="http://www.devteach.com" target="_blank"&gt;DevTeach&lt;/a&gt;. I love DevTeach because of it’s close, friendly atmosphere that you don’t get with the larger conferences. The caliber of speakers is excellent and they easily accessible and always floating around the session hallways, ballrooms and of course the bars ;-). Plus, the deal is great – &lt;a href="http://www.devteach.com/Register.aspx" target="_blank"&gt;buy 2 passes, get one free&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here’s some more reasons to go:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.devteach.com/Keynote.aspx"&gt;&lt;b&gt;Keynote: Visual Studio 2010 — Your Development Happy Place&lt;/b&gt;&lt;/a&gt; : &lt;a href="http://interknowlogy.com/about_us.aspx" target="_blank"&gt;Tim Huckaby&lt;/a&gt; is putting together a great Keynote that will show off a lot of the awesome features in Visual Studio 2008 as well as new features in Visual Studio 2010. I’ll be on hand for a short demo myself that shows off some of our new WPF data-binding tools. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="https://www.clicktoattend.com/invitation.aspx?code=138549" target="_blank"&gt;User Group Night Monday June 8th&lt;/a&gt; : &lt;/b&gt;This one is &lt;strong&gt;Free &lt;/strong&gt;for everyone just before the kickoff party on Monday night. I’ll be presenting &lt;em&gt;Future Directions for Microsoft Visual Basic and C# &lt;/em&gt;from 6pm to 8pm. &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=138549" target="_blank"&gt;&lt;strong&gt;Register for the user group here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.devteach.com/Schedule.asp"&gt;DevTeach has a jam packed conference schedule&lt;/a&gt;. &lt;b&gt;136 sessions&lt;/b&gt; will be presented with many advanced sessions as well. They are including a Silverlight track and an application live-cycle track this time. Also check out the three &lt;a href="http://www.devteach.com/PreConference.aspx"&gt;&lt;b&gt;Pre-Conference workshops on June 8th&lt;/b&gt;&lt;/a&gt;. I’d highly recommend &lt;a href="http://www.devteach.com/PreConference.aspx#PreSP"&gt;Building Business Applications with Silverlight 2.0.&lt;/a&gt; There’s also three &lt;a href="http://www.devteach.com/PostConference.aspx"&gt;&lt;b&gt;Post-Conference workshops on June 12th&lt;/b&gt;&lt;/a&gt;, one with Julie Lerman on &lt;a href="http://www.devteach.com/PostConference.aspx#PreEF"&gt;ADO.NET Entity Framework&lt;/a&gt; that I know will be awesome. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.devteach.com/Register.aspx" target="_blank"&gt;&lt;strong&gt;Register for DevTeach here.&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9626135" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/auCbsZmd56k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/auCbsZmd56k/post.aspx</link>
      <author>Beth Massi - Beth Massi</author>
      <pubDate>Mon, 18 May 2009 21:37:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7079</feedburner:origLink></item>
    <item>
      <title>Visual Studio 2010 Beta 1 – Everyone can download and play today!</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Beth Massi&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; &lt;P&gt;Here it is folks, Visual Studio 2010 Beta 1 has been released to the public today. Check out the &lt;A href="http://go.microsoft.com/fwlink/?LinkID=151797" mce_href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;&lt;STRONG&gt;Visual Studio 2010 and .NET Framework 4 Beta 1 site&lt;/STRONG&gt;&lt;/A&gt; to download the Beta, submit product feedback on the &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/category/VSPreRelease,netdevelopmentprerelease,visualstudioprerelease,vstsprerelease" target=_blank mce_href="http://social.msdn.microsoft.com/Forums/en-US/category/VSPreRelease,netdevelopmentprerelease,visualstudioprerelease,vstsprerelease"&gt;Beta 1 Forums&lt;/A&gt;, report bugs on &lt;A href="http://go.microsoft.com/fwlink/?LinkID=151484" target=_blank mce_href="http://go.microsoft.com/fwlink/?LinkID=151484"&gt;Connect&lt;/A&gt;, and find additional information. Also visit the &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx"&gt;Beta 1 walkthroughs page&lt;/A&gt; for information on how to use the new features and download the &lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd238515.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vstudio/dd238515.aspx"&gt;Visual Studio 2010 Samples&lt;/A&gt;. There’s also some good language-focused resources on the &lt;A href="http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx"&gt;Visual Basic 2010&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx"&gt;C# 2010&lt;/A&gt; that are hanging off the Developer Centers. &lt;/P&gt;
&lt;P&gt;Some of my favorite features include those around the &lt;A href="http://windowsclient.net/wpfdesigner" target=_blank mce_href="http://windowsclient.net/wpfdesigner"&gt;WPF Designer&lt;/A&gt; and the Data Sources Window which now supports the same drag-drop RAD experience of Winforms in WPF applications:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd465159(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd465159(VS.100).aspx"&gt;Walkthrough: Binding WPF Controls to an Entity Data Model&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd547149(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd547149(VS.100).aspx"&gt;Walkthrough: Binding WPF Controls to a Dataset&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd465161(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd465161(VS.100).aspx"&gt;Walkthrough: Binding WPF Controls to an ADO.NET Data Service&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd465158(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd465158(VS.100).aspx"&gt;Walkthrough: Displaying Related Data in a WPF Application&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;For Office solutions, check out the &lt;A href="http://msdn.microsoft.com/en-us/library/dd234217(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd234217(VS.100).aspx"&gt;Advanced Office Solution Deployment&lt;/A&gt; topic in the library and the &lt;A href="http://blogs.msdn.com/vsto/" target=_blank mce_href="http://blogs.msdn.com/vsto/"&gt;VSTO Team blog&lt;/A&gt; for some cool new Office client features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd465290(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd465290(VS.100).aspx"&gt;Walkthrough: Deploying Multiple Office Solutions in a Single ClickOnce Installer&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd465291(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd465291(VS.100).aspx"&gt;Walkthrough: Copying a Document to the End User Computer after a ClickOnce Installation&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Take a look through the &lt;A href="http://msdn.microsoft.com/en-us/library/dd547188(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd547188(VS.100).aspx"&gt;Visual Studio 2010 Product Highlights&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx"&gt;What's New in Visual Studio 2010&lt;/A&gt; for more info on other new features including &lt;A href="http://msdn.microsoft.com/en-us/library/z4y0hsax(VS.100).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/z4y0hsax(VS.100).aspx"&gt;multi-monitor&lt;/A&gt; – YUMMY! :-)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;New Team Bloggers&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I’d also like to introduce the “come-back” of the &lt;A href="http://blogs.msdn.com/vsdata/" target=_blank mce_href="http://blogs.msdn.com/vsdata/"&gt;Visual Studio Data team blog&lt;/A&gt;. We’ve got a lot of new faces on the team that are building some amazing tools in Visual Studio to help you build business applications. They’ll be posting a lot of great &lt;A href="http://blogs.msdn.com/vsdata/archive/tags/VS2010/default.aspx" target=_blank mce_href="http://blogs.msdn.com/vsdata/archive/tags/VS2010/default.aspx"&gt;VS 2010 content here&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Visual Studio 2010 Beta 1 resources:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=151797" mce_href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;&lt;STRONG&gt;Visual Studio 2010 and .NET Framework 4 Beta 1 site&lt;/STRONG&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/?linkid=9665216" mce_href="http://go.microsoft.com/?linkid=9665216"&gt;Visual Studio 2010 and .NET Framework 4.0 Training Kit &lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd238515.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vstudio/dd238515.aspx"&gt;Visual Studio 2010 Samples&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vstudio/dd441784.aspx"&gt;Visual Studio 2010 Beta 1 Walkthroughs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://windowsclient.net/wpfdesigner" mce_href="http://windowsclient.net/wpfdesigner"&gt;WPF and Silverlight Designer Walkthroughs&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx"&gt;What's New in Visual Studio 2010&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd547188(VS.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd547188(VS.100).aspx"&gt;Visual Studio 2010 Product Highlights&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vbasic/dd819153.aspx"&gt;Visual Basic 2010&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/vcsharp/dd819407.aspx"&gt;C# 2010&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/dd831853(VS.100).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/dd831853(VS.100).aspx"&gt;VS 2010 Library&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://channel9.msdn.com/tags/Visual%20Studio%202010/"&gt;Visual Studio 2010 on Channel 9&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;My recommended blogs on VS 2010:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vsdata/archive/tags/VS2010/default.aspx" target=_blank mce_href="http://blogs.msdn.com/vsdata/archive/tags/VS2010/default.aspx"&gt;Visual Studio Data Team&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vsto/archive/tags/VS2010/default.aspx" target=_blank mce_href="http://blogs.msdn.com/vsto/archive/tags/VS2010/default.aspx"&gt;VSTO Team&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/vbteam/archive/tags/VB2010/default.aspx" target=_blank mce_href="http://blogs.msdn.com/vbteam/archive/tags/VB2010/default.aspx"&gt;Visual Basic Team&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/jasonz/" target=_blank mce_href="http://blogs.msdn.com/jasonz/"&gt;Jason Zander&lt;/A&gt; (executive blog) &lt;/LI&gt;
&lt;LI&gt;and &lt;A href="http://blogs.msdn.com/bethmassi/archive/tags/VS2010/default.aspx" target=_blank mce_href="http://blogs.msdn.com/bethmassi/archive/tags/VS2010/default.aspx"&gt;Me&lt;/A&gt; ;-)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9632575" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/wsusZV6djvA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/wsusZV6djvA/post.aspx</link>
      <author>Beth Massi - Beth Massi</author>
      <pubDate>Wed, 20 May 2009 17:50:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7078</feedburner:origLink></item>
    <item>
      <title>How We Do It: Building the Visual Studio Product Line</title>
      <description>&lt;p&gt;&lt;small&gt;&lt;b&gt;Channel: Beth Massi&lt;/b&gt;&lt;/small&gt;&lt;/p&gt; &lt;p&gt;Ever wonder how we build Visual Studio and the .NET Framework? I mean literally. You know, the build process that spits out a product at the other end?&amp;#160; Well I sure did and it's not just hitting F5 people ;-). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/funkyonex/How-We-Do-It-Building-the-Visual-Studio-Product-Line/" target="_blank"&gt;In this interview&lt;/a&gt; I sit down with &lt;a href="http://blogs.msdn.com/vbteam/archive/tags/Matt+Gertz/default.aspx"&gt;Matt Gertz, frequent VB blogger&lt;/a&gt; and also the guy in charge of the builds in Developer Division (he has a long title, but I forget what it is :-)). He explains how the build and test processes work on a team of two thousand people all on Team Foundation Server. I must say it's pretty darn impressive. Many thanks to Matt for taking time out of his busy schedule to do this interview! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/funkyonex/How-We-Do-It-Building-the-Visual-Studio-Product-Line/"&gt;&lt;strong&gt;How We Do It: Building the Visual Studio Product Line&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9635249" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/vbfeeds/~4/13r3GTWq1-k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/vbfeeds/~3/13r3GTWq1-k/post.aspx</link>
      <author>Beth Massi - Beth Massi</author>
      <pubDate>Fri, 22 May 2009 14:46:00 PST</pubDate>
    <feedburner:origLink>http://vbfeeds.com/post.aspx?id=7077</feedburner:origLink></item>
  </channel>
</rss>
