<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Snowball - The Blog - XAML</title>
    <link>http://www.snowball.be/</link>
    <description>Gill's blog on .net programming</description>
    <language>en-us</language>
    <copyright>Gill Cleeren</copyright>
    <lastBuildDate>Thu, 02 Feb 2012 21:17:44 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>gillcleeren@gmail.com</managingEditor>
    <webMaster>gillcleeren@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=c8c7fc67-485f-48bb-a90c-93bb83de7493</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,c8c7fc67-485f-48bb-a90c-93bb83de7493.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,c8c7fc67-485f-48bb-a90c-93bb83de7493.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=c8c7fc67-485f-48bb-a90c-93bb83de7493</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I think I broke a record: the most popular SilverlightShow webinar, judging
from the number of registrations and attendees. Thanks all for joining!
</p>
        <p>
Here are the slides and demos for part 1:
</p>
        <p>
          <a href="https://skydrive.live.com/redir.aspx?cid=bd64f22e01fad982&amp;resid=BD64F22E01FAD982!885&amp;parid=BD64F22E01FAD982!883">Slides</a> - <a href="https://skydrive.live.com/redir.aspx?cid=bd64f22e01fad982&amp;resid=BD64F22E01FAD982!884&amp;parid=BD64F22E01FAD982!883">Demos</a></p>
        <p>
Hope to see you for part 2 on February 9th!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=c8c7fc67-485f-48bb-a90c-93bb83de7493" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Demos and slides of SilverlightShow webinar on WIndows 8 for XAML developers (part 1)</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,c8c7fc67-485f-48bb-a90c-93bb83de7493.aspx</guid>
      <link>http://www.snowball.be/2012/02/02/Demos+And+Slides+Of+SilverlightShow+Webinar+On+WIndows+8+For+XAML+Developers+Part+1.aspx</link>
      <pubDate>Thu, 02 Feb 2012 21:17:44 GMT</pubDate>
      <description>&lt;p&gt;
Today I think I broke a record: the most popular SilverlightShow webinar, judging
from the number of registrations and attendees. Thanks all for joining!
&lt;/p&gt;
&lt;p&gt;
Here are the slides and demos for part 1:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://skydrive.live.com/redir.aspx?cid=bd64f22e01fad982&amp;amp;resid=BD64F22E01FAD982!885&amp;amp;parid=BD64F22E01FAD982!883"&gt;Slides&lt;/a&gt; - &lt;a href="https://skydrive.live.com/redir.aspx?cid=bd64f22e01fad982&amp;amp;resid=BD64F22E01FAD982!884&amp;amp;parid=BD64F22E01FAD982!883"&gt;Demos&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Hope to see you for part 2 on February 9th!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=c8c7fc67-485f-48bb-a90c-93bb83de7493" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,c8c7fc67-485f-48bb-a90c-93bb83de7493.aspx</comments>
      <category>Metro</category>
      <category>Silverlight</category>
      <category>Webcasts</category>
      <category>Webinars</category>
      <category>Windows 8</category>
      <category>WinRT</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=05b07eb0-b370-4628-919b-7c881b388126</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,05b07eb0-b370-4628-919b-7c881b388126.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,05b07eb0-b370-4628-919b-7c881b388126.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=05b07eb0-b370-4628-919b-7c881b388126</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="center">
          <img src="http://www.snowball.be/content/binary/kaxaml.jpg" border="0" />
        </p>
        <p>
KaXaml has finally hit the 1.0 milestone! Indeed, finally!
</p>
        <p>
In case you don't know this great little (free) XAML tool, here's what the official
website has to say on it: 
<br /><em>Kaxaml is a lightweight XAML editor that gives you a "split view" so you can see
both your XAML and your rendered content (kind of like XamlPad but without the gigabyte
of SDK).</em></p>
        <p>
There are a lot of new features included in the 1.0 release, including Intellisense
support, a new UI and tabsupport. To see an overview of all the new features, go <a href="http://notstatic.com/archives/121#comment-48071">here</a>.
One other interesting thing it that it now has basic support for Silverlight too!
</p>
        <p>
Convinced that this can and will make your XAML life easier? Go <a href="http://kaxaml.com/downloads/Kaxaml_1.0.msi">here</a> for
the free download or visit <a href="http://www.kaxaml.com">www.kaxaml.com</a> .
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=05b07eb0-b370-4628-919b-7c881b388126" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>KaXaml 1.0: final release, includes support for Silverlight!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,05b07eb0-b370-4628-919b-7c881b388126.aspx</guid>
      <link>http://www.snowball.be/2008/01/06/KaXaml+10+Final+Release+Includes+Support+For+Silverlight.aspx</link>
      <pubDate>Sun, 06 Jan 2008 23:02:28 GMT</pubDate>
      <description>&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/kaxaml.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
KaXaml has finally hit the 1.0 milestone! Indeed, finally!
&lt;/p&gt;
&lt;p&gt;
In case you don't know this great little (free) XAML tool, here's what the official
website has to say on it: 
&lt;br&gt;
&lt;em&gt;Kaxaml is a lightweight XAML editor that gives you a "split view" so you can see
both your XAML and your rendered content (kind of like XamlPad but without the gigabyte
of SDK).&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
There are a lot of new features included in the 1.0 release, including Intellisense
support, a new UI and tabsupport. To see an overview of all the new features, go &lt;a href="http://notstatic.com/archives/121#comment-48071"&gt;here&lt;/a&gt;.
One other interesting thing it that it now has basic support for Silverlight too!
&lt;/p&gt;
&lt;p&gt;
Convinced that this can and will make your XAML life easier? Go &lt;a href="http://kaxaml.com/downloads/Kaxaml_1.0.msi"&gt;here&lt;/a&gt; for
the free download or visit &lt;a href="http://www.kaxaml.com"&gt;www.kaxaml.com&lt;/a&gt; .
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=05b07eb0-b370-4628-919b-7c881b388126" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,05b07eb0-b370-4628-919b-7c881b388126.aspx</comments>
      <category>Silverlight</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=91a2167c-a9e9-42b9-9778-c1000fe8be19</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,91a2167c-a9e9-42b9-9778-c1000fe8be19.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,91a2167c-a9e9-42b9-9778-c1000fe8be19.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=91a2167c-a9e9-42b9-9778-c1000fe8be19</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, another CTP of Blend 2, THE tool for create Silverlight and Windows Presentation
Foundation applications, was released. This time, it's the September Preview.<br />
Here's a list of what was added/changed: 
</p>
        <ul>
          <li>
VS2008 beta 2 full support 
</li>
          <li>
Creation of Controls from existing objects - reuse them all. 
</li>
          <li>
Some enhancements with Split View - now you can see Design and Code both as well as
you can do it in Visual Studio 
</li>
          <li>
Storyboard picker - the old Storyboard panel has been thrown and replaced with brand
new storyboard picker. Now you can duplicate, reverse or delete existing storyboard
or easy modify its properties. 
</li>
          <li>
Aside with new storyboard picker, now you have properties panel both for all sotryboard
or single frame. 
</li>
          <li>
New functionality - 3D Vertex animation 
</li>
          <li>
Long awaited Breadcrumb bar 
</li>
          <li>
Subsetting and embedding fonts within your application (EULA awarded) 
</li>
          <li>
New build options - how you can create custom builds for better integration with Visual
Studio 
</li>
          <li>
New abilities of object manipulation - uniformly resize, scale, rotate multiple objects,
resizing handlers at artboard. Easy object duplication by dragging with Ctrl-P pressed. 
</li>
        </ul>
        <p>
You can download a free copy <a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2preview" target="_blank">here</a>. 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=91a2167c-a9e9-42b9-9778-c1000fe8be19" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Blend 2 September CTP released</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,91a2167c-a9e9-42b9-9778-c1000fe8be19.aspx</guid>
      <link>http://www.snowball.be/2007/09/24/Blend+2+September+CTP+Released.aspx</link>
      <pubDate>Mon, 24 Sep 2007 21:37:54 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, another CTP of Blend 2, THE tool for create Silverlight and Windows Presentation
Foundation applications, was released. This time, it's the September Preview.&lt;br&gt;
Here's a list of what was added/changed: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
VS2008 beta 2 full support 
&lt;li&gt;
Creation of Controls from existing objects - reuse them all. 
&lt;li&gt;
Some enhancements with Split View - now you can see Design and Code both as well as
you can do it in Visual Studio 
&lt;li&gt;
Storyboard picker - the old Storyboard panel has been thrown and replaced with brand
new storyboard picker. Now you can duplicate, reverse or delete existing storyboard
or easy modify its properties. 
&lt;li&gt;
Aside with new storyboard picker, now you have properties panel both for all sotryboard
or single frame. 
&lt;li&gt;
New functionality - 3D Vertex animation 
&lt;li&gt;
Long awaited Breadcrumb bar 
&lt;li&gt;
Subsetting and embedding fonts within your application (EULA awarded) 
&lt;li&gt;
New build options - how you can create custom builds for better integration with Visual
Studio 
&lt;li&gt;
New abilities of object manipulation - uniformly resize, scale, rotate multiple objects,
resizing handlers at artboard. Easy object duplication by dragging with Ctrl-P pressed. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can download a free copy &lt;a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2preview" target=_blank&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=91a2167c-a9e9-42b9-9778-c1000fe8be19" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,91a2167c-a9e9-42b9-9778-c1000fe8be19.aspx</comments>
      <category>Silverlight</category>
      <category>WPF</category>
      <category>XAML</category>
      <category>Blend</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=7a078815-8402-4788-a902-de25fccd4873</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,7a078815-8402-4788-a902-de25fccd4873.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,7a078815-8402-4788-a902-de25fccd4873.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=7a078815-8402-4788-a902-de25fccd4873</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Silverlighteventbyme_14669/150px-Silverlight%5B7%5D.png" atomicselection="true">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="209" src="http://www.snowball.be/content/binary/WindowsLiveWriter/Silverlighteventbyme_14669/150px-Silverlight_thumb%5B3%5D.png" width="188" align="right" border="0" />
          </a>
        </p>
        <p>
I'll be doing a session on Silverlight next month, on September 20th for Visug, the
Belgian Visual Studio User Group. In this session, I'll give an overview of XAML too,
so that if you've got no knowledge, you'll still be able to follow the entire session.
This event will take place in the Ordina (my company) buildings in Schelle. 
</p>
        <p>
I will announce the complete overview in a few days, as I'll be working on my session
in the coming week (I have a week off, but I'll be working anyhow ;-) ). 
</p>
        <p>
If you want to register for this free training, please go to <a href="http://www.visug.be">www.visug.be</a> and
click on the event! So, what are you waiting for?!?!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7a078815-8402-4788-a902-de25fccd4873" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Silverlight event by me!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,7a078815-8402-4788-a902-de25fccd4873.aspx</guid>
      <link>http://www.snowball.be/2007/08/10/Silverlight+Event+By+Me.aspx</link>
      <pubDate>Fri, 10 Aug 2007 21:12:59 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/Silverlighteventbyme_14669/150px-Silverlight%5B7%5D.png" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=209 src="http://www.snowball.be/content/binary/WindowsLiveWriter/Silverlighteventbyme_14669/150px-Silverlight_thumb%5B3%5D.png" width=188 align=right border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I'll be doing a session on Silverlight next month, on September 20th for Visug, the
Belgian Visual Studio User Group. In this session, I'll give an overview of XAML too,
so that if you've got no knowledge, you'll still be able to follow the entire session.
This event will take place in the Ordina (my company) buildings in Schelle. 
&lt;p&gt;
I will announce the complete overview in a few days, as I'll be working on my session
in the coming week (I have a week off, but I'll be working anyhow ;-) ). 
&lt;p&gt;
If you want to register for this free training, please go to &lt;a href="http://www.visug.be"&gt;www.visug.be&lt;/a&gt; and
click on the event! So, what are you waiting for?!?!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=7a078815-8402-4788-a902-de25fccd4873" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,7a078815-8402-4788-a902-de25fccd4873.aspx</comments>
      <category>.net</category>
      <category>Silverlight</category>
      <category>Visug</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=db7a5bc2-e937-48fc-88b1-480aa59e8d1d</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,db7a5bc2-e937-48fc-88b1-480aa59e8d1d.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,db7a5bc2-e937-48fc-88b1-480aa59e8d1d.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=db7a5bc2-e937-48fc-88b1-480aa59e8d1d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I came across <a href="http://mbrownchicago.spaces.live.com/">this post</a> which
has code for a perfect XAML shield. 
<br /></p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/shield.JPG" border="0" />
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=db7a5bc2-e937-48fc-88b1-480aa59e8d1d" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Xaml shield</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,db7a5bc2-e937-48fc-88b1-480aa59e8d1d.aspx</guid>
      <link>http://www.snowball.be/2007/05/23/Xaml+Shield.aspx</link>
      <pubDate>Wed, 23 May 2007 21:44:07 GMT</pubDate>
      <description>&lt;p&gt;
I came across &lt;a href="http://mbrownchicago.spaces.live.com/"&gt;this post&lt;/a&gt; which
has code for a perfect XAML shield. 
&lt;br&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/shield.JPG" border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=db7a5bc2-e937-48fc-88b1-480aa59e8d1d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,db7a5bc2-e937-48fc-88b1-480aa59e8d1d.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=67098180-5b7b-4bdf-84cd-af103f267ebb</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,67098180-5b7b-4bdf-84cd-af103f267ebb.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,67098180-5b7b-4bdf-84cd-af103f267ebb.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=67098180-5b7b-4bdf-84cd-af103f267ebb</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As WPF is becoming more and more used, the list of available tools and controls is
growing fast.<br /><br />
Therefore, it seemed a good idea to list all the tools that I use or know but don't
use yet, and share that list with you!
</p>
        <p>
          <strong>Professional tools</strong>
        </p>
        <p>
          <u>Visual Studio 2005<br /></u>There's no doubt that Visual Studio 2005 is the best environment for developing
WPF applications. So, if you have access to it (via MSDN for example), I certainly
recommend using it.<br />
However, out of the box, it has no knowledge of WPF projects, so you'll have to install
some additional software.<br />
First, you should install the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=c2b1e300-f358-4523-b479-f53d234cdccf&amp;displaylang=en">Windows
SDK</a> (free), then you should add the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;displaylang=en">Visual
Studio 2005 extensions for .net 3.0 framework</a> (they also include templates for
WCF). These extensions install the templates for development of WPF projects, and
also add Intellisense for XAML code (on a sidenote, when writing XAML code, the Intellisense
is not always correct in flagging errors, due to the fact that the extensions are
still in CTP phase!)
</p>
        <p align="center">
 <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf1%5B1%5D.jpg" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="127" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf1.jpg" width="240" border="0" /></a></p>
        <p>
          <br />
Also, you now get a designer for WPF applications, which is code-named Cider. The
complete version will be included in the Orcas release.<br /><br /><u>Visual Studio Orcas<br /></u>There's life after Visual Studio 2005! And it is known as Orcas. Visual Studio
Orcas, the successor of 2005, will probably be released in Q4 2007, but you can download
the CTP since a few months.<br />
Just recently, the March 2007 CTP was released, which is considered a milestone on
the road to the complete product. 
</p>
        <p>
 <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf2%5B6%5D.jpg" atomicselection="true"><img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="48" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf2_thumb%5B4%5D.jpg" width="240" align="left" border="0" /></a><br />
So, what will Orcas bring to the world of WPF? It will include full support for designing
WPF windows and web applications, with the completed version of Cider.<br />
For now, it's possible to start using Orcas. You can download the CTP <a href="http://www.microsoft.com/downloads/details.aspx?familyid=281FCB3D-5E79-4126-B4C0-8DB6332DE26E&amp;displaylang=en">here</a> (large
download, beware!)<br /><br /><u>Expression Suite<br /></u>The Expression suite is a range of new products from Microsoft. The collection
includes Blend, Web, Design and Media. Web is more or less the (very much improved)
successor of FrontPage.<br /><br />
Blend is the tool that is the most interesting for WPF developers/designers. It allows
you to open a WPF project, design it in a very advanced environment using a wide range
of tools (much like Photoshop, but for designing user interfaces). After you're finished,
you can open the project in Visual Studio again. 
<br />
At this time, Blend is in RC, but since it's a <a href="http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx">public
download</a>, you can start using it right now. I hope I'll find some time to do a
tutorial on Blend soon. 
<br /><br />
Design, a professional illustration and graphic design tool, is still in beta
2, but also available for <a href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx">download</a> already.
Design fully supports export to XAML, which makes it easy to incorporate your graphics
with your other XAML code.<br />
On a sidenote, Web has been released and you can download a trial <a href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx">here</a>. 
</p>
        <p>
          <strong>Controls</strong>
        </p>
        <p>
          <u>Infragistics NetAdvantage 2007 for WPF<br /></u>Infragistics recently released Beta 1 of their first WPF controls. The suite,
which can be downloaded <a href="http://www.infragistics.com/hot/wpf.aspx#NetAdvantageforWPFBeta">here</a> for
free, includes the xamDataGrid and xamDataPresenter controls (pronounced "zamDataGrid"
and "zamDataPresente<a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/CarouselView_Users12.png" atomicselection="true"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px 5px 10px 0px; BORDER-RIGHT-WIDTH: 0px" height="127" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/CarouselView_Users1_thumb.png" width="240" align="left" border="0" /></a>r"). 
<br /><br /><br />
Some controls, like the xamCarouselListBox seem very promising and seem to make it
very easy to add advanced features to your applications.<br />
 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
          <u>ActiPro Ribbon<br /></u>Last week, I got a mail from ActiPro, to introduce me to their ActiPro Ribbon.
The control <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/Ribbon%5B1%5D.gif" atomicselection="true"><img style="MARGIN: 0px 0px 0px 5px" height="105" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/Ribbon%5B1%5D_thumb.gif" width="240" align="right" /></a>features Office
2007-like user interface for the Windows Presentation Foundation (WPF) and meets all
of the core Microsoft licensing requirements for implementation of a ribbon user interface.
I must say, it looks very nice. You can download a demo <a href="http://www.actiprosoftware.com/Products/DotNet/WPF/Ribbon/Default.aspx">here</a>.<br /><br />
 <br /><u>XCeed WPF DataGrid<br /></u>I found this control via a banner on Scott Hanselman's site... These guys simply
give away FOR FREE the entire control, which is a fully featured WPF datagrid. It's risky
to say but I think this replaces the missing datagrid in WPF.
</p>
        <p align="center">
          <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf3%5B1%5D.jpg" atomicselection="true">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="101" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf3.jpg" width="240" border="0" />
          </a> 
</p>
        <p align="left">
When you register, the license is royalty free and perpetual. So, no excuse for not
having this control in your toolbox.<br /><a href="http://xceed.com/Grid_WPF_Demo.html">Here</a> you can check out some demo's
and <a href="http://xceed.com/Grid_WPF_Intro.html">get the control</a>.<br /><br /><strong>Tools<br /><br /></strong><u>XamlPad<br /></u>XamlPad (xamlpad.exe) is a basic visual editor for XAML. If you installed the
SDK, it's probably already on your PC, since it's part of the default install.<br />
XamlPad is quite basic, and some say not the most user friendly. Therefore, I recommend
using one of the two following tools in this list for basic XAML.<br /><br /><u>XamlPadX<br /></u>XamlPadX(Extended) is a somehow extended version of XamlPad and has some handy
features. Some of its most important features (from the site):<br /></p>
        <ul>
          <li>
A xaml writer which parses the object back into xaml and vice versa. 
</li>
          <li>
Simple command interpreter with limited intellisense (please look at help window
for limitations). 
</li>
          <li>
Viewer of default styles 
</li>
          <li>
Automatically closing of tags 
</li>
          <li>
Line-numbering 
</li>
          <li>
Possibility to save in different locations 
</li>
          <li>
Indentation feature (!)</li>
        </ul>
        <p>
You can download the lastest version <a href="http://msdn.technetweb3.orcsweb.com/llobo/archive/2006/12/30/xamlpadx-v2.aspx">here.</a></p>
        <p>
 
</p>
        <p>
          <u>Kazaml<br /></u>
          <u>
            <a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/kaxaml_thumb6%5B6%5D.png" atomicselection="true">
              <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/kaxaml_thumb6_thumb%5B4%5D.png" align="right" border="0" />
            </a>
          </u>Another
editor, which is now in alpha 2 phase, and is thus not yet complete. You can download
it <a href="http://www.notstatic.com/kaxaml/Kaxaml_0.2.msi">here</a> and more
info can be found <a href="http://notstatic.com/archives/64">here</a>.
</p>
        <p>
          <br />
          <br />
 
</p>
        <p align="left">
 
</p>
        <p align="left">
 
</p>
        <p align="left">
          <u>Adobe Fireworks XAML exporter<br /></u>This free extension from Infragistics makes it possible to convert anything that's
currently selected to XAML. You can download it <a href="http://www.infragistics.com/design/">here</a>.<br /><br /><u>Performance Profiling tools 
<br /></u>WPFPerf is a set of tools that can help you find performance issues in WPF. It
included Perforator, Event Trace, Trace Viewer, Visual Profiler and Working Set Analyzer.
There's a very in-depth article on MSDN that you can read <a href="http://msdn2.microsoft.com/en-us/library/aa969767.aspx">here</a>. 
<br /><br /><u>LocBAML<br /></u>LocBAML is actually a sample included in the SDK. After you compile your XAML
into an assembly, it can extract the strings and place them into a *.csv file. This
file can then be translated, and the file can then be given again to LocBAML, which
will create culture-specific resource DLLs. Handy for when you're translating your
WPF application.<br /><br /><u>Reflector<br /></u>Since Reflector updated to version 5, it supports the .net 3.0 framework, and
thus WPF files can be extracted from assemblies.<br /><br /><br />
I hope you find in this list some tools that can help you explore the world of WPF. 
<br /><br /><strong>If you know another tool not listed here, or if you have developed a control/tool
you'd like to see in this list, please leave a comment or send me a mail.</strong></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=67098180-5b7b-4bdf-84cd-af103f267ebb" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF/XAML tools list - April 2007</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,67098180-5b7b-4bdf-84cd-af103f267ebb.aspx</guid>
      <link>http://www.snowball.be/2007/04/12/WPFXAML+Tools+List+April+2007.aspx</link>
      <pubDate>Thu, 12 Apr 2007 21:49:41 GMT</pubDate>
      <description>&lt;p&gt;
As WPF is becoming more and more used, the list of available tools and controls is
growing fast.&lt;br&gt;
&lt;br&gt;
Therefore, it seemed a good idea to list all the tools that I use or know but don't
use yet, and share that list with you!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Professional tools&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Visual Studio 2005&lt;br&gt;
&lt;/u&gt;There's no doubt that Visual Studio 2005 is the best environment for developing
WPF applications. So, if you have access to it (via MSDN for example), I certainly
recommend using it.&lt;br&gt;
However, out of the box, it has no knowledge of WPF projects, so you'll have to install
some additional software.&lt;br&gt;
First, you should install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=c2b1e300-f358-4523-b479-f53d234cdccf&amp;amp;displaylang=en"&gt;Windows
SDK&lt;/a&gt; (free), then you should add the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en"&gt;Visual
Studio 2005 extensions for .net 3.0 framework&lt;/a&gt; (they also include templates for
WCF). These extensions install the templates for development of WPF projects, and
also add Intellisense for XAML code (on a sidenote, when writing XAML code, the Intellisense
is not always correct in flagging errors, due to the fact that the extensions are
still in CTP phase!)
&lt;/p&gt;
&lt;p align=center&gt;
&amp;nbsp;&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf1%5B1%5D.jpg" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=127 src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf1.jpg" width=240 border=0&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Also, you now get a designer for WPF applications, which is code-named Cider. The
complete version will be included in the Orcas release.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Visual Studio Orcas&lt;br&gt;
&lt;/u&gt;There's life after Visual Studio 2005! And it is known as Orcas. Visual Studio
Orcas, the successor of 2005, will probably be released in Q4 2007, but you can download
the CTP since a few months.&lt;br&gt;
Just recently, the March 2007 CTP was released, which is considered a milestone on
the road to the complete product. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf2%5B6%5D.jpg" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=48 src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf2_thumb%5B4%5D.jpg" width=240 align=left border=0&gt;&lt;/a&gt;
&lt;br&gt;
So, what will Orcas bring to the world of WPF? It will include full support for designing
WPF windows and web applications, with the completed version of Cider.&lt;br&gt;
For now, it's possible to start using Orcas. You can download the CTP &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=281FCB3D-5E79-4126-B4C0-8DB6332DE26E&amp;amp;displaylang=en"&gt;here&lt;/a&gt; (large
download, beware!)&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Expression Suite&lt;br&gt;
&lt;/u&gt;The Expression suite is a range of new products from Microsoft. The collection
includes Blend, Web, Design and Media. Web is more or less the (very much improved)
successor of FrontPage.&lt;br&gt;
&lt;br&gt;
Blend is the tool that is the most interesting for WPF developers/designers. It allows
you to open a WPF project, design it in a very advanced environment using a wide range
of tools (much like Photoshop, but for designing user interfaces). After you're finished,
you can open the project in Visual Studio again. 
&lt;br&gt;
At this time, Blend is in RC, but since it's a &lt;a href="http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx"&gt;public
download&lt;/a&gt;, you can start using it right now. I hope I'll find some time to do a
tutorial on Blend soon. 
&lt;br&gt;
&lt;br&gt;
Design,&amp;nbsp;a professional illustration and graphic design tool, is still in beta
2, but also available for &lt;a href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx"&gt;download&lt;/a&gt; already.
Design fully supports export to XAML, which makes it easy to incorporate your graphics
with your other XAML code.&lt;br&gt;
On a sidenote, Web has been released and you can download&amp;nbsp;a trial&amp;nbsp;&lt;a href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx"&gt;here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Controls&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Infragistics NetAdvantage 2007 for WPF&lt;br&gt;
&lt;/u&gt;Infragistics recently released Beta 1 of their first WPF controls. The suite,
which can be downloaded &lt;a href="http://www.infragistics.com/hot/wpf.aspx#NetAdvantageforWPFBeta"&gt;here&lt;/a&gt; for
free, includes the xamDataGrid and xamDataPresenter controls (pronounced "zamDataGrid"
and "zamDataPresente&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/CarouselView_Users12.png" atomicselection="true"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px 5px 10px 0px; BORDER-RIGHT-WIDTH: 0px" height=127 src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/CarouselView_Users1_thumb.png" width=240 align=left border=0&gt;&lt;/a&gt;r"). 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Some controls, like the xamCarouselListBox seem very promising and seem to make it
very easy to add advanced features to your applications.&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;ActiPro Ribbon&lt;br&gt;
&lt;/u&gt;Last week, I got a mail from ActiPro, to introduce me to their ActiPro Ribbon.
The control &lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/Ribbon%5B1%5D.gif" atomicselection="true"&gt;&lt;img style="MARGIN: 0px 0px 0px 5px" height=105 src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/Ribbon%5B1%5D_thumb.gif" width=240 align=right&gt;&lt;/a&gt;features&amp;nbsp;Office
2007-like user interface for the Windows Presentation Foundation (WPF) and meets all
of the core Microsoft licensing requirements for implementation of a ribbon user interface.
I must say, it looks very nice. You can download a demo &lt;a href="http://www.actiprosoftware.com/Products/DotNet/WPF/Ribbon/Default.aspx"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;u&gt;XCeed WPF DataGrid&lt;br&gt;
&lt;/u&gt;I found this control via a banner on Scott Hanselman's site... These guys simply
give away FOR FREE the entire control, which is a fully featured WPF datagrid. It's&amp;nbsp;risky
to say but I think this replaces the missing datagrid in WPF.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf3%5B1%5D.jpg" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=101 src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/wpf3.jpg" width=240 border=0&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p align=left&gt;
When you register, the license is royalty free and perpetual. So, no excuse for not
having this control in your toolbox.&lt;br&gt;
&lt;a href="http://xceed.com/Grid_WPF_Demo.html"&gt;Here&lt;/a&gt; you can check out some demo's
and &lt;a href="http://xceed.com/Grid_WPF_Intro.html"&gt;get the control&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Tools&lt;br&gt;
&lt;br&gt;
&lt;/strong&gt;&lt;u&gt;XamlPad&lt;br&gt;
&lt;/u&gt;XamlPad (xamlpad.exe) is a basic visual editor for XAML. If you installed the
SDK, it's probably already on your PC, since it's part of the default install.&lt;br&gt;
XamlPad is quite basic, and some say not the most user friendly. Therefore, I recommend
using one of the two following tools in this list for basic XAML.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;XamlPadX&lt;br&gt;
&lt;/u&gt;XamlPadX(Extended) is a somehow extended version of XamlPad and has some handy
features. Some of its most important features (from the site):&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A xaml writer which parses the object back into xaml and vice versa. 
&lt;li&gt;
Simple command interpreter with limited&amp;nbsp;intellisense (please look at help window
for limitations). 
&lt;li&gt;
Viewer of default styles 
&lt;li&gt;
Automatically closing of tags 
&lt;li&gt;
Line-numbering 
&lt;li&gt;
Possibility to save in different locations 
&lt;li&gt;
Indentation feature (!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can download the lastest version &lt;a href="http://msdn.technetweb3.orcsweb.com/llobo/archive/2006/12/30/xamlpadx-v2.aspx"&gt;here.&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Kazaml&lt;br&gt;
&lt;/u&gt;&lt;u&gt;&lt;a href="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/kaxaml_thumb6%5B6%5D.png" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" src="http://www.snowball.be/content/binary/WindowsLiveWriter/WPFXAMLtoolslistApril2007_14753/kaxaml_thumb6_thumb%5B4%5D.png" align=right border=0&gt;&lt;/a&gt;&lt;/u&gt;Another
editor, which is now in alpha 2 phase, and is thus not yet complete. You can download
it &lt;a href="http://www.notstatic.com/kaxaml/Kaxaml_0.2.msi"&gt;here&lt;/a&gt;&amp;nbsp;and more
info can be found &lt;a href="http://notstatic.com/archives/64"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align=left&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align=left&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align=left&gt;
&lt;u&gt;Adobe Fireworks XAML exporter&lt;br&gt;
&lt;/u&gt;This free extension from Infragistics makes it possible to convert anything that's
currently selected to XAML. You can download it &lt;a href="http://www.infragistics.com/design/"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Performance Profiling tools 
&lt;br&gt;
&lt;/u&gt;WPFPerf is a set of tools that can help you find performance issues in WPF. It
included Perforator, Event Trace, Trace Viewer, Visual Profiler and Working Set Analyzer.
There's a very in-depth article on MSDN that you can read &lt;a href="http://msdn2.microsoft.com/en-us/library/aa969767.aspx"&gt;here&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;LocBAML&lt;br&gt;
&lt;/u&gt;LocBAML is actually a sample included in the SDK. After you compile your XAML
into an assembly, it can extract the strings and place them into a *.csv file. This
file can then be translated, and the file can then be given again to LocBAML, which
will create culture-specific resource DLLs. Handy for when you're translating your
WPF application.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Reflector&lt;br&gt;
&lt;/u&gt;Since Reflector updated to version 5, it supports the .net 3.0 framework, and
thus WPF files can be extracted from assemblies.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I hope you find in this list some tools that can help you explore the world of WPF. 
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;If you know another tool not listed here, or if you have developed a control/tool
you'd like to see in this list, please leave a comment or send me a mail.&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=67098180-5b7b-4bdf-84cd-af103f267ebb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,67098180-5b7b-4bdf-84cd-af103f267ebb.aspx</comments>
      <category>.net</category>
      <category>.net 3.0</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While I was reading today on WPF, I came across a property that can come in very handy
when designing an interface using a GridView (which is the default when you start
a WPF project in Visual Studio by the way).<br /><br />
When setting the ShowGridLines property on a GridView to True, in design view, the
cells of of grid are highlighted with a blue and yellow dashed line. This line is
of course not useful for production environment, but can come in handy when debugging/designing!<br /><br />
You can see a sample on the image below.
</p>
        <img src="http://www.snowball.be/content/binary/ShowGridLines.JPG" border="0" />
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF: ShowGridLines is a handy property</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf.aspx</guid>
      <link>http://www.snowball.be/2007/04/09/WPF+ShowGridLines+Is+A+Handy+Property.aspx</link>
      <pubDate>Mon, 09 Apr 2007 19:15:55 GMT</pubDate>
      <description>&lt;p&gt;
While I was reading today on WPF, I came across a property that can come in very handy
when designing an interface using a GridView (which is the default when you start
a WPF project in Visual Studio by the way).&lt;br&gt;
&lt;br&gt;
When setting the ShowGridLines property on a GridView to True, in design view, the
cells of of grid are highlighted with a blue and yellow dashed line. This line is
of course not useful for production environment, but can come in handy when debugging/designing!&lt;br&gt;
&lt;br&gt;
You can see a sample on the image below.
&lt;/p&gt;
&lt;img src="http://www.snowball.be/content/binary/ShowGridLines.JPG" border=0&gt;&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,0110efc3-3cd3-47ad-8c4e-ee9acd08a2bf.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=f9894b0b-06e3-4593-b424-a62ec2729770</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,f9894b0b-06e3-4593-b424-a62ec2729770.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,f9894b0b-06e3-4593-b424-a62ec2729770.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=f9894b0b-06e3-4593-b424-a62ec2729770</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Some time ago, we did a .net 3.0 event at Ordina. We did some demo's on WPF and WCF.<br />
However, there was one thing in our demo we couldn't figure out ourselves: how does
the spelling check on a textbox in WPF work in the following code:<br /></p>
        <font color="#0000ff" size="2">
          <p>
&lt;
</p>
        </font>
        <font color="#a31515" size="2">TextBox</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Height</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">34</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Margin</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">103,0,89,78</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">textBox1</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">VerticalAlignment</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">Bottom</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">AcceptsReturn</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">True</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">SpellCheck.IsEnabled</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">True</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> &gt;&lt;/</font>
        <font color="#a31515" size="2">TextBox</font>
        <font color="#0000ff" size="2">&gt;</font>
        <p>
          <font color="#0000ff" size="2">
            <font color="#000000">Appearantly, it works using the
dictionary provided by Microsoft Office, and is thus multilingual. So, it's not a
feature of .net 3.0!<br />
On the down side, in the current version, it's not possible to add custom dictionaries.
That might change in a future version.</font>
          </font>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f9894b0b-06e3-4593-b424-a62ec2729770" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF: Where does the spell checking come from?</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,f9894b0b-06e3-4593-b424-a62ec2729770.aspx</guid>
      <link>http://www.snowball.be/2007/04/08/WPF+Where+Does+The+Spell+Checking+Come+From.aspx</link>
      <pubDate>Sun, 08 Apr 2007 12:30:13 GMT</pubDate>
      <description>&lt;p&gt;
Some time ago, we did a .net 3.0 event at Ordina. We did some demo's on WPF and WCF.&lt;br&gt;
However, there was one thing in our demo we couldn't figure out ourselves: how does
the spelling check on a textbox in WPF work in the following code:&lt;br&gt;
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;
&lt;/font&gt;&lt;font color=#a31515 size=2&gt;TextBox&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Height&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;34&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Margin&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;103,0,89,78&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;textBox1&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;VerticalAlignment&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Bottom&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;AcceptsReturn&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;True&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;SpellCheck.IsEnabled&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;True&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;TextBox&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font color=#0000ff size=2&gt;&lt;font color=#000000&gt;Appearantly, it works using the dictionary
provided by Microsoft Office, and is thus multilingual. So, it's not a feature of
.net 3.0!&lt;br&gt;
On the down side, in the current version, it's not possible to add custom dictionaries.
That might change in a future version.&lt;/font&gt;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=f9894b0b-06e3-4593-b424-a62ec2729770" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,f9894b0b-06e3-4593-b424-a62ec2729770.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
      <category>.net 3.0</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=2695e5d6-9abb-4d0c-88f2-e7ebae9f0054</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,2695e5d6-9abb-4d0c-88f2-e7ebae9f0054.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,2695e5d6-9abb-4d0c-88f2-e7ebae9f0054.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=2695e5d6-9abb-4d0c-88f2-e7ebae9f0054</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As opposed to what was said earlier, Expression Suite will be included in MSDN Premium
subscriptions!! That's simply great news, isn't it?! Somasegar did the announcement
today on his blog, based on the feedback they received.
</p>
        <p>
          <br />
        </p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/expression.jpg" border="0" />
        </p>
        <p>
          <br />
          <em>Based on this feedback, I am pleased to say that we will be making Expression
Web available starting today to all MSDN Premium subscribers.  We will also make
Expression Blend available to MSDN Premium subscribers shortly after the Expression
Studio release later in Q2 2007.   Expression Blend and Expression Web are
intended to help creative professionals collaborate with developers to create rich
user experiences for the Web, Windows Vista applications and beyond, which means we
need to make sure both tools are readily available to our developer community.</em>
        </p>
        <p>
More <a href="http://blogs.msdn.com/somasegar/archive/2007/04/03/listening-to-your-feedback-expression-and-msdn.aspx">here</a>.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=2695e5d6-9abb-4d0c-88f2-e7ebae9f0054" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Hail to Soma!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,2695e5d6-9abb-4d0c-88f2-e7ebae9f0054.aspx</guid>
      <link>http://www.snowball.be/2007/04/03/Hail+To+Soma.aspx</link>
      <pubDate>Tue, 03 Apr 2007 20:24:53 GMT</pubDate>
      <description>&lt;p&gt;
As opposed to what was said earlier, Expression Suite will be included in MSDN Premium
subscriptions!! That's simply great news, isn't it?!&amp;nbsp;Somasegar did the announcement
today on his blog, based on the feedback they received.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/expression.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;em&gt;Based on this feedback, I am pleased to say that we will be making Expression
Web available starting today to all MSDN Premium subscribers.&amp;nbsp; We will also make
Expression Blend available to MSDN Premium subscribers shortly after the Expression
Studio release later in Q2 2007.&amp;nbsp;&amp;nbsp; Expression Blend and Expression Web are
intended to help creative professionals collaborate with developers to create rich
user experiences for the Web, Windows Vista applications and beyond, which means we
need to make sure both tools are readily available to our developer community.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
More &lt;a href="http://blogs.msdn.com/somasegar/archive/2007/04/03/listening-to-your-feedback-expression-and-msdn.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=2695e5d6-9abb-4d0c-88f2-e7ebae9f0054" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,2695e5d6-9abb-4d0c-88f2-e7ebae9f0054.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
      <category>Expression</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=fbf46a51-ccd1-48c4-ae60-f78b95eccc5f</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,fbf46a51-ccd1-48c4-ae60-f78b95eccc5f.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,fbf46a51-ccd1-48c4-ae60-f78b95eccc5f.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=fbf46a51-ccd1-48c4-ae60-f78b95eccc5f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Lately, I've come across some interesting WPF resources and labs. In this post, I'll
share them with you.<br /><br />
If you're into WPF, you probably already saw the North Face demo, one of the applications
that MS used to demonstrate WPF and it's capabilities. You can now read the entire
case study <a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201147">here</a>.<br /><br />
Over at Channel9, a Wiki was created to gather all resources on WPF. On this page,
you can find a tremendous amount of information and resources when you're learning
WPF. Go <a href="http://channel9.msdn.com/wiki/default.aspx/WPF.LearningWPF">here</a> for
the Wiki.<br /><br />
Karsten Januszewski posted a new lab on WPF 3D <a href="http://wpf.netfx3.com/files/folders/labs/entry9680.aspx">here</a>.<br /><br />
Hope this helps you more in learning WPF!
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=fbf46a51-ccd1-48c4-ae60-f78b95eccc5f" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>New WPF resources</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,fbf46a51-ccd1-48c4-ae60-f78b95eccc5f.aspx</guid>
      <link>http://www.snowball.be/2007/03/30/New+WPF+Resources.aspx</link>
      <pubDate>Fri, 30 Mar 2007 22:55:05 GMT</pubDate>
      <description>&lt;p&gt;
Lately, I've come across some interesting WPF resources and labs. In this post, I'll
share them with you.&lt;br&gt;
&lt;br&gt;
If you're into WPF, you probably already saw the North Face demo, one of the applications
that MS used to demonstrate WPF and it's capabilities. You can now read the entire
case study &lt;a href="http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201147"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Over at Channel9, a Wiki was created to gather all resources on WPF. On this page,
you can find a tremendous amount of information and resources when you're learning
WPF. Go &lt;a href="http://channel9.msdn.com/wiki/default.aspx/WPF.LearningWPF"&gt;here&lt;/a&gt; for
the Wiki.&lt;br&gt;
&lt;br&gt;
Karsten Januszewski posted a new lab on WPF 3D &lt;a href="http://wpf.netfx3.com/files/folders/labs/entry9680.aspx"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
Hope this helps you more in learning WPF!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=fbf46a51-ccd1-48c4-ae60-f78b95eccc5f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,fbf46a51-ccd1-48c4-ae60-f78b95eccc5f.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=dc63651c-a9f9-43bd-8313-f507903a5131</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,dc63651c-a9f9-43bd-8313-f507903a5131.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,dc63651c-a9f9-43bd-8313-f507903a5131.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=dc63651c-a9f9-43bd-8313-f507903a5131</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, at the Microsoft DevDays 2007 in Gent, Belgium, I talked with Jeff Prosise
on the future of WPF/E. He was not able to give away much details of the platform,
since a lot will be announced at the Mix 07 convention in Las Vegas next month.<br />
What he did say, was that Microsoft will almost certainly announce a new name for
the platform!<br /><br />
Why don't we help Microsoft a little?! Have a good idea on the name of this possible
Flash killer? Post them here, and maybe somebody at Microsoft will pick it up...<br /><br /></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=dc63651c-a9f9-43bd-8313-f507903a5131" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Let's find a new name for WPF/E</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,dc63651c-a9f9-43bd-8313-f507903a5131.aspx</guid>
      <link>http://www.snowball.be/2007/03/30/Lets+Find+A+New+Name+For+WPFE.aspx</link>
      <pubDate>Fri, 30 Mar 2007 13:13:20 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, at the Microsoft DevDays 2007 in Gent, Belgium, I talked with Jeff Prosise
on the future of WPF/E. He was not able to give away much details of the platform,
since a lot will be announced at the Mix 07 convention in Las Vegas next month.&lt;br&gt;
What he did say, was that Microsoft will almost certainly announce a new name for
the platform!&lt;br&gt;
&lt;br&gt;
Why don't we help Microsoft a little?! Have a good idea on the name of this possible
Flash killer? Post them here, and maybe somebody at Microsoft will pick it up...&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=dc63651c-a9f9-43bd-8313-f507903a5131" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,dc63651c-a9f9-43bd-8313-f507903a5131.aspx</comments>
      <category>Microsoft</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=86bb2105-b9d2-4a0a-8a42-df292958b853</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,86bb2105-b9d2-4a0a-8a42-df292958b853.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,86bb2105-b9d2-4a0a-8a42-df292958b853.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=86bb2105-b9d2-4a0a-8a42-df292958b853</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The .NET Framework 3.0 has officially been released!  You can download the
.NET Framework 3.0 components here:
</p>
        <ul>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;displaylang=en">.NET
Framework 3.0 Runtime Components</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;displaylang=en">Windows
SDK for Vista and the .NET Framework 3.0</a>  
</li>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5D61409E-1FA3-48CF-8023-E8F38E709BA6&amp;displaylang=en">Visual
Studio 2005 Extensions for .NET Framework 3.0 (Windows Workflow Foundation)</a>
          </li>
          <li>
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;displaylang=en">Visual
Studio 2005 Extensions for .NET Framework 3.0 (WCF &amp; WPF), November 2006 CTP</a>
          </li>
        </ul>
        <p>
If you use Vista, they are installed by default.
</p>
        <p>
Th  If you have a previous CTP installed, please be sure to review the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146&amp;displaylang=en">uninstall
instructions</a>. 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=86bb2105-b9d2-4a0a-8a42-df292958b853" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>.net 3.0 released</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,86bb2105-b9d2-4a0a-8a42-df292958b853.aspx</guid>
      <link>http://www.snowball.be/2006/11/07/net+30+Released.aspx</link>
      <pubDate>Tue, 07 Nov 2006 10:09:54 GMT</pubDate>
      <description>&lt;p&gt;
The .NET Framework 3.0 has officially been released!&amp;nbsp;&amp;nbsp;You can download the
.NET Framework 3.0 components&amp;nbsp;here:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en"&gt;.NET
Framework 3.0 Runtime Components&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;amp;displaylang=en"&gt;Windows
SDK for Vista&amp;nbsp;and the .NET Framework 3.0&lt;/a&gt;&amp;nbsp; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5D61409E-1FA3-48CF-8023-E8F38E709BA6&amp;amp;displaylang=en"&gt;Visual
Studio 2005 Extensions for .NET Framework 3.0 (Windows Workflow Foundation)&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en"&gt;Visual
Studio 2005 Extensions for .NET Framework 3.0 (WCF &amp;amp; WPF), November 2006 CTP&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you use Vista, they are installed by default.
&lt;/p&gt;
&lt;p&gt;
Th&amp;nbsp;&amp;nbsp;If you have a previous CTP installed, please be sure to review the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146&amp;amp;displaylang=en"&gt;uninstall
instructions&lt;/a&gt;.&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=86bb2105-b9d2-4a0a-8a42-df292958b853" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,86bb2105-b9d2-4a0a-8a42-df292958b853.aspx</comments>
      <category>.net</category>
      <category>C#</category>
      <category>Programming</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=73481e3b-8cea-41a7-8ca1-e58f5d628d06</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,73481e3b-8cea-41a7-8ca1-e58f5d628d06.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,73481e3b-8cea-41a7-8ca1-e58f5d628d06.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=73481e3b-8cea-41a7-8ca1-e58f5d628d06</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
With Windows Presentation Foundation coming closer to its release date with Vista
almost being upon us, more and more people are taking a look at programming in WPF…
Lately, people searching on Google for WPF-related information is soaring. How do
you know that, you might ask? Well, in my logs, I notice a steep increase in people
landing on my blog who searched for information on WPF. That’s a good thing!! ?
</p>
        <p>
However, what I do notice, is that there is still some confusion on some topics. 
In this article, I want to help clear out the difference between the different application
types in WPF/Vista. Since this is a major change with previous application models,
lots of people, including me when I first heard about it, seem confused.
</p>
        <p>
          <em>So, let’s get to it!</em>
        </p>
        <p>
WPF has 2 main applications models: standalone and browser. On the other hand, it
also has 2 types of navigation: menu-driven, which is what we’re all used to in traditional
Windows applications and link-driven, which is the default for web applications. The
first thing to note is that in WPF, both types of navigation can be used in either
of the application models. Neat, isn’t it? 
<br />
That basically means that you can create a web application as if it were a windows
application, containing a menu to navigate around. Or, create a standalone desktop
application that feels like a web application, with all buttons replaced by links.<br />
No longer are you bound to one application model with is “natural” navigation model!
</p>
        <p>
          <strong>Standalone applications<br /></strong>
          <br />
When you want to create a “traditional” Windows application, you should choose to
create “Windows Application (WPF)”. 
<br /></p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/11.jpg" border="0" />
        </p>
        <p align="left">
The Windows Form now became a Window, each of these is declared as Window1.xaml. Notice
that the build action for a Window file is automatically set to Page. What this means,
is that the markup is turned into a special type of resource that can be identified
uniquely by a Uniform Resource Identifier (URI). This way, WPF can load the window
using a URI, as is done set the starting point in your App.xaml. 
</p>
        <p align="left">
          <font face="Courier New">&lt;Application x:Class="WindowsApplication2.App"<br />
    xmlns="</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml/presentation</font>
          </a>
          <font face="Courier New">"<br />
    xmlns:x="</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml</font>
          </a>
          <font face="Courier New">"<br />
    StartupUri="Window1.xaml"<br />
    &gt;</font>
        </p>
        <p align="left">
This way, your application knows which window it has to load up first. This window
is loaded modeless, meaning that it has no problems with you clicking anywhere else
in the application. 
</p>
        <p align="left">
          <strong>Page’d applications<br /></strong>
          <br />
Should you want to create an application that mimics the web experience but still
run as a standalone application, you should start by adding a Page(WPF). 
</p>
        <p align="left">
Just like in the Window, you can add controls and content to the page. However, when
you change the startupuri in the App.xaml to your newly added page, some things will
change. 
</p>
        <p align="left">
A window can host itself, like a form did in traditional Windows Forms programming.
A HTML/ASPX page requires a browser. Now, we created a “standalone” application with
the starting point set to a page. Kinda weird, right?
</p>
        <p align="left">
Well, the Application class in WPF is smart enough to detect if your startupuri is
set to a page. It will then create a window to host your application. 
</p>
        <p align="center">
          <img src="http://www.snowball.be/content/binary/2.jpg" border="0" />
        </p>
        <p align="left">
          <br />
Now, where does this “hosting window” come from?<br />
When the startupuri is set to a XAML page or HTML page, Application  creates
an instance of NavigationWindow to host them. This class derives from Window but extends
it to make it look like a mini-browser window, providing navigation buttons at the
top.
</p>
        <p align="left">
When content changes or when you click a link to navigate to another page, the previous
content is added to the history. The management of the history itself is managed too
by the NavigationWindow. 
</p>
        <p align="left">
          <strong>XAML Browser applications<br /></strong>
          <br />
The final type of application is the XAML browser application. While the previous
type of application basically is a web application, being hosted in its own mini-browser,
you can’t really take advantage of all the features modern browser have today. If
that’s what you need, you should create a XAML browser application or XBAP. 
</p>
        <p align="left">
To create one, you should choose new “XAML Browser Application (WPF)”. After that,
you can copy all the code you created for that WPF standalone application to one or
more pages, and your application is ready for the web! 
</p>
        <p align="left">
One more thing you can do with XBAPs is publish them on a web- or intranet server.
This is done using ClickOnce, which creates the executable along with 2 manifest files.
One of these 2 has the extension XBAP, and that’s were the user navigates too. It
then “downloads” the application to the local computer.
</p>
        <p align="left">
Because of the security risk, XBAPs are not installed and run in a security sandbox:
some operations like writing to the registry are not allowed. Basically, XBAPs can
only do things that are allowed for apps launched from the Internet zone, a restricted
set of operations.<br /><br /><strong>Conclusion<br /></strong>As you can see, the ways an application is build are different
from what you are used to in traditional programming. I hope this guide
is clear enough to help you choose the correct type when building a WPF application
for Vista.<br />
 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=73481e3b-8cea-41a7-8ca1-e58f5d628d06" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF tutorial: Different types of applications in Windows Presentation Foundation</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,73481e3b-8cea-41a7-8ca1-e58f5d628d06.aspx</guid>
      <link>http://www.snowball.be/2006/11/02/WPF+Tutorial+Different+Types+Of+Applications+In+Windows+Presentation+Foundation.aspx</link>
      <pubDate>Thu, 02 Nov 2006 15:01:59 GMT</pubDate>
      <description>&lt;p&gt;
With Windows Presentation Foundation coming closer to its release date with Vista
almost being upon us, more and more people are taking a look at programming in WPF…
Lately, people searching on Google for WPF-related information is soaring. How do
you know that, you might ask? Well, in my logs, I notice a steep increase in people
landing on my blog who searched for information on WPF. That’s a good thing!! ?
&lt;/p&gt;
&lt;p&gt;
However, what I do notice, is that there is still some confusion on some topics.&amp;nbsp;
In this article, I want to help clear out the difference between the different application
types in WPF/Vista. Since this is a major change with previous application models,
lots of people, including me when I first heard about it, seem confused.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;So, let’s get to it!&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
WPF has 2 main applications models: standalone and browser. On the other hand, it
also has 2 types of navigation: menu-driven, which is what we’re all used to in traditional
Windows applications and link-driven, which is the default for web applications. The
first thing to note is that in WPF, both types of navigation can be used in either
of the application models. Neat, isn’t it? 
&lt;br&gt;
That basically means that you can create a web application as if it were a windows
application, containing a menu to navigate around. Or, create a standalone desktop
application that feels like a web application, with all buttons replaced by links.&lt;br&gt;
No longer are you bound to one application model with is “natural” navigation model!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Standalone applications&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
When you want to create a “traditional” Windows application, you should choose to
create “Windows Application (WPF)”. 
&lt;br&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/11.jpg" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
The Windows Form now became a Window, each of these is declared as Window1.xaml. Notice
that the build action for a Window file is automatically set to Page. What this means,
is that the markup is turned into a special type of resource that can be identified
uniquely by a Uniform Resource Identifier (URI). This way, WPF can load the window
using a URI, as is done set the starting point in your App.xaml. 
&lt;/p&gt;
&lt;p align=left&gt;
&lt;font face="Courier New"&gt;&amp;lt;Application x:Class="WindowsApplication2.App"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; StartupUri="Window1.xaml"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align=left&gt;
This way, your application knows which window it has to load up first. This window
is loaded modeless, meaning that it has no problems with you clicking anywhere else
in the application. 
&lt;/p&gt;
&lt;p align=left&gt;
&lt;strong&gt;Page’d applications&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
Should you want to create an application that mimics the web experience but still
run as a standalone application, you should start by adding a Page(WPF). 
&lt;/p&gt;
&lt;p align=left&gt;
Just like in the Window, you can add controls and content to the page. However, when
you change the startupuri in the App.xaml to your newly added page, some things will
change. 
&lt;/p&gt;
&lt;p align=left&gt;
A window can host itself, like a form did in traditional Windows Forms programming.
A HTML/ASPX page requires a browser. Now, we created a “standalone” application with
the starting point set to a page. Kinda weird, right?
&lt;/p&gt;
&lt;p align=left&gt;
Well, the Application class in WPF is smart enough to detect if your startupuri is
set to a page. It will then create a window to host your application. 
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.snowball.be/content/binary/2.jpg" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
&lt;br&gt;
Now, where does this “hosting window” come from?&lt;br&gt;
When the startupuri is set to a XAML page or HTML page, Application&amp;nbsp; creates
an instance of NavigationWindow to host them. This class derives from Window but extends
it to make it look like a mini-browser window, providing navigation buttons at the
top.
&lt;/p&gt;
&lt;p align=left&gt;
When content changes or when you click a link to navigate to another page, the previous
content is added to the history. The management of the history itself is managed too
by the NavigationWindow. 
&lt;/p&gt;
&lt;p align=left&gt;
&lt;strong&gt;XAML Browser applications&lt;br&gt;
&lt;/strong&gt;
&lt;br&gt;
The final type of application is the XAML browser application. While the previous
type of application basically is a web application, being hosted in its own mini-browser,
you can’t really take advantage of all the features modern browser have today. If
that’s what you need, you should create a XAML browser application or XBAP. 
&lt;/p&gt;
&lt;p align=left&gt;
To create one, you should choose new “XAML Browser Application (WPF)”. After that,
you can copy all the code you created for that WPF standalone application to one or
more pages, and your application is ready for the web! 
&lt;/p&gt;
&lt;p align=left&gt;
One more thing you can do with XBAPs is publish them on a web- or intranet server.
This is done using ClickOnce, which creates the executable along with 2 manifest files.
One of these 2 has the extension XBAP, and that’s were the user navigates too. It
then “downloads” the application to the local computer.
&lt;/p&gt;
&lt;p align=left&gt;
Because of the security risk, XBAPs are not installed and run in a security sandbox:
some operations like writing to the registry are not allowed. Basically, XBAPs can
only do things that are allowed for apps launched from the Internet zone, a restricted
set of operations.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Conclusion&lt;br&gt;
&lt;/strong&gt;As you can&amp;nbsp;see,&amp;nbsp;the ways&amp;nbsp;an application is build are different
from what you are used to&amp;nbsp;in traditional&amp;nbsp;programming. I hope this guide
is clear enough to help you choose the&amp;nbsp;correct type when building a WPF application
for Vista.&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=73481e3b-8cea-41a7-8ca1-e58f5d628d06" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,73481e3b-8cea-41a7-8ca1-e58f5d628d06.aspx</comments>
      <category>.net</category>
      <category>ASP.net</category>
      <category>C#</category>
      <category>Vista</category>
      <category>Visual Studio.net</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=d18a6103-79b0-44ef-a2c5-6325468717c1</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,d18a6103-79b0-44ef-a2c5-6325468717c1.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,d18a6103-79b0-44ef-a2c5-6325468717c1.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=d18a6103-79b0-44ef-a2c5-6325468717c1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My article on WPF (Windows Presentation Foundation) triggers and styles is online
on the MSDN website! You can read it <a href="http://www.microsoft.com/belux/msdn/nl/community/columns/gillcleeren/wpf_stylesandtriggers.mspx">here</a>!<br /><br />
From MSDN:<br /><em>In this article, Gill Cleeren focuses on the aspect of styles and triggers in
Windows Presenation Foundation. Styles make it possible to create applications with
a uniform look and with a high level of maintainability. Triggers allow WPF styles
to change one or more properties in response of a user interaction. In this document,
we will use both these technologies to create a richer user experience.<br /></em></p>
        <p>
This is my first article on MSDN (more will come, now that I'm into it ;-) )<br /><br />
Here's a screenshot of the MSDN Belux site (Click for larger version)<br /><br /><a href="http://www.snowball.be/content/binary/GillOnMSDNSmall.jpg"><img src="http://www.snowball.be/content/binary/thumbMSDN.jpg" border="0" /></a><br /><br />
Thanks to the MSDN Belux team, Wim Verhaegen and Tom Mertens.
</p>
        <a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/Thats+Me+On+MSDN+.aspx">
        </a>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d18a6103-79b0-44ef-a2c5-6325468717c1" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>That's me on MSDN ;-)</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,d18a6103-79b0-44ef-a2c5-6325468717c1.aspx</guid>
      <link>http://www.snowball.be/2006/10/20/Thats+Me+On+MSDN.aspx</link>
      <pubDate>Fri, 20 Oct 2006 11:38:00 GMT</pubDate>
      <description>&lt;p&gt;
My article on WPF (Windows Presentation Foundation) triggers and styles is online
on the MSDN website! You can read it &lt;a href="http://www.microsoft.com/belux/msdn/nl/community/columns/gillcleeren/wpf_stylesandtriggers.mspx"&gt;here&lt;/a&gt;!&lt;br&gt;
&lt;br&gt;
From MSDN:&lt;br&gt;
&lt;em&gt;In this article, Gill Cleeren focuses on the aspect of styles and triggers in
Windows Presenation Foundation. Styles make it possible to create applications with
a uniform look and with a high level of maintainability. Triggers allow WPF styles
to change one or more properties in response of a user interaction. In this document,
we will use both these technologies to create a richer user experience.&lt;br&gt;
&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
This is my first article on MSDN (more will come, now that I'm into it ;-) )&lt;br&gt;
&lt;br&gt;
Here's a screenshot of the MSDN Belux site (Click for larger version)&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.snowball.be/content/binary/GillOnMSDNSmall.jpg"&gt;&lt;img src="http://www.snowball.be/content/binary/thumbMSDN.jpg" border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Thanks to the MSDN Belux team, Wim Verhaegen and Tom Mertens.
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/Thats+Me+On+MSDN+.aspx"&gt;&lt;/a&gt;&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=d18a6103-79b0-44ef-a2c5-6325468717c1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,d18a6103-79b0-44ef-a2c5-6325468717c1.aspx</comments>
      <category>.net</category>
      <category>C#</category>
      <category>Microsoft</category>
      <category>Programming tools</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=1d3ade4d-315d-4b71-a273-b29935c75612</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,1d3ade4d-315d-4b71-a273-b29935c75612.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,1d3ade4d-315d-4b71-a273-b29935c75612.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=1d3ade4d-315d-4b71-a273-b29935c75612</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <span id="_ctl5__ctl0_NewsArticlesRepeater__ctl4_ArticleText">
            <span>Another new release
of the .net framework 3.0 has been released! This time, it's the September CTP.<br /><br />
The Microsoft .NET Framework 3.0 (formerly known as WinFX), is the new managed code
programming model for Windows. It combines the power of the .NET Framework 2.0 with
new technologies for building applications that have visually compelling user experiences,
seamless communication across technology boundaries, and the ability to support a
wide range of business processes. 
<br />
These new technologies are Windows Presentation Foundation, Windows Communication
Foundation, Windows Workflow Foundation, and Windows CardSpace (formerly code named
"Infocard"). Microsoft plans to ship .NET Framework 3.0 as part of the Windows Vista
operating system. In addition, Microsoft is making these technologies available on
Windows XP and Windows Server 2003. 
<br />
The following Community Technology Preview of .NET Framework 3.0 enables you to continue
experimenting with early builds of these technologies, get acquainted with the development
experience, and provide feedback to Microsoft. For more information on these technologies,
click <a href="http://msdn.microsoft.com/winfx/technologies/default.aspx" target="_blank"><u><font color="#0000ff">here</font></u></a>. 
<br /><br /><b>Installation</b><br />
To start the installation process, you will need to run the download file; this will
initiate the installation of the .NET Framework 3.0 September CTP; If you have troubles
with the download manager, you can download the entire package <a href="http://download.microsoft.com/download/7/D/A/7DADE2E4-667F-4FCB-BA6B-80D09B03276B/dotnetfx3.exe" target="_blank"><u><font color="#0000ff">for
x86</font></u></a> or <a href="http://download.microsoft.com/download/F/C/3/FC3BADCC-7230-4452-8608-9DA0927F38F3/dotnetfx3_x64.exe" target="_blank"><u><font color="#0000ff">for
x64</font></u></a> which are both .EXE files. </span>
          </span>
        </p>
        <p>
          <span>
            <span>
            </span>
          </span> 
</p>
        <p>
          <span>
            <span>Enjoy!</span>
          </span>
        </p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1d3ade4d-315d-4b71-a273-b29935c75612" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>September CTP of the .net framework 3.0</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,1d3ade4d-315d-4b71-a273-b29935c75612.aspx</guid>
      <link>http://www.snowball.be/2006/09/24/September+CTP+Of+The+Net+Framework+30.aspx</link>
      <pubDate>Sun, 24 Sep 2006 09:25:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span id=_ctl5__ctl0_NewsArticlesRepeater__ctl4_ArticleText&gt;&lt;span&gt;Another new release
of the .net framework 3.0 has been released! This time, it's the September CTP.&lt;br&gt;
&lt;br&gt;
The Microsoft .NET Framework 3.0 (formerly known as WinFX), is the new managed code
programming model for Windows. It combines the power of the .NET Framework 2.0 with
new technologies for building applications that have visually compelling user experiences,
seamless communication across technology boundaries, and the ability to support a
wide range of business processes. 
&lt;br&gt;
These new technologies are Windows Presentation Foundation, Windows Communication
Foundation, Windows Workflow Foundation, and Windows CardSpace (formerly code named
"Infocard"). Microsoft plans to ship .NET Framework 3.0 as part of the Windows Vista
operating system. In addition, Microsoft is making these technologies available on
Windows XP and Windows Server 2003. 
&lt;br&gt;
The following Community Technology Preview of .NET Framework 3.0 enables you to continue
experimenting with early builds of these technologies, get acquainted with the development
experience, and provide feedback to Microsoft. For more information on these technologies,
click &lt;a href="http://msdn.microsoft.com/winfx/technologies/default.aspx" target=_blank&gt;&lt;u&gt;&lt;font color=#0000ff&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Installation&lt;/b&gt;
&lt;br&gt;
To start the installation process, you will need to run the download file; this will
initiate the installation of the .NET Framework 3.0 September CTP; If you have troubles
with the download manager, you can download the entire package &lt;a href="http://download.microsoft.com/download/7/D/A/7DADE2E4-667F-4FCB-BA6B-80D09B03276B/dotnetfx3.exe" target=_blank&gt;&lt;u&gt;&lt;font color=#0000ff&gt;for
x86&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; or &lt;a href="http://download.microsoft.com/download/F/C/3/FC3BADCC-7230-4452-8608-9DA0927F38F3/dotnetfx3_x64.exe" target=_blank&gt;&lt;u&gt;&lt;font color=#0000ff&gt;for
x64&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; which are both .EXE files. &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;span&gt;&lt;span&gt;Enjoy!&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=1d3ade4d-315d-4b71-a273-b29935c75612" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,1d3ade4d-315d-4b71-a273-b29935c75612.aspx</comments>
      <category>.net</category>
      <category>Vista</category>
      <category>Visual Studio.net</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=0da61596-eec6-43f0-9a06-7035bbe89b71</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,0da61596-eec6-43f0-9a06-7035bbe89b71.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,0da61596-eec6-43f0-9a06-7035bbe89b71.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=0da61596-eec6-43f0-9a06-7035bbe89b71</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A list of some new WPF resources:
</p>
        <ul>
          <li>
Online hosted version of the Cube animation: <a href="http://wpf.netfx3.com/direct/cubeapp/CubeApp.xbap">http://wpf.netfx3.com/direct/cubeapp/CubeApp.xbap</a></li>
          <li>
New York Times: offline reader: <a href="http://www.nytimes.com/mem/reader_regi.html?_r=1">http://www.nytimes.com/mem/reader_regi.html?_r=1</a></li>
          <li>
WPF feature montage: <a href="http://wpf.netfx3.com/files/folders/code_snippets/entry3752.aspx">http://wpf.netfx3.com/files/folders/code_snippets/entry3752.aspx</a></li>
          <li>
XAML cruncher: <a href="http://www.charlespetzold.com/wpf/XamlCruncher/XamlCruncher.application">http://www.charlespetzold.com/wpf/XamlCruncher/XamlCruncher.application</a> </li>
          <li>
3D XAML: <a href="http://www.charlespetzold.com/blog/2006/09/120140.html">http://www.charlespetzold.com/blog/2006/09/120140.html</a></li>
        </ul>
        <p>
 
</p>
        <p>
More to come...<br /></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0da61596-eec6-43f0-9a06-7035bbe89b71" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>New WPF articles</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,0da61596-eec6-43f0-9a06-7035bbe89b71.aspx</guid>
      <link>http://www.snowball.be/2006/09/20/New+WPF+Articles.aspx</link>
      <pubDate>Wed, 20 Sep 2006 20:09:32 GMT</pubDate>
      <description>&lt;p&gt;
A list of some new WPF resources:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Online hosted version of the Cube animation: &lt;a href="http://wpf.netfx3.com/direct/cubeapp/CubeApp.xbap"&gt;http://wpf.netfx3.com/direct/cubeapp/CubeApp.xbap&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
New York Times: offline reader: &lt;a href="http://www.nytimes.com/mem/reader_regi.html?_r=1"&gt;http://www.nytimes.com/mem/reader_regi.html?_r=1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
WPF feature montage: &lt;a href="http://wpf.netfx3.com/files/folders/code_snippets/entry3752.aspx"&gt;http://wpf.netfx3.com/files/folders/code_snippets/entry3752.aspx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
XAML cruncher: &lt;a href="http://www.charlespetzold.com/wpf/XamlCruncher/XamlCruncher.application"&gt;http://www.charlespetzold.com/wpf/XamlCruncher/XamlCruncher.application&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
3D XAML: &lt;a href="http://www.charlespetzold.com/blog/2006/09/120140.html"&gt;http://www.charlespetzold.com/blog/2006/09/120140.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
More to come...&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=0da61596-eec6-43f0-9a06-7035bbe89b71" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,0da61596-eec6-43f0-9a06-7035bbe89b71.aspx</comments>
      <category>Vista</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=8a19335e-8ec5-4088-82e0-6517000be2cb</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,8a19335e-8ec5-4088-82e0-6517000be2cb.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,8a19335e-8ec5-4088-82e0-6517000be2cb.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=8a19335e-8ec5-4088-82e0-6517000be2cb</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My new bible has arrived :-)<br /><br /></p>
        <img src="http://www.snowball.be/content/binary/appcodemarkup.jpg" border="0" />
        <br />
        <br />
Appearantly, one of the first in Europe, since the release was scheduled for 13th
September in the US.<br /><br />
At first glace, it seems a very complete book, covering every aspect in WPF. I'll
be posting a review later when I have read more in the book...<br /><br />
From Amazon.com:<br /><em>In this book, Windows programming legend Charles Petzold covers in parallel the
two interfaces that make up the Windows Presentation Foundation (WPF). From the outset,
the reader can shift focus seamlessly between Extensible Application Markup Language
(XAML) and C# to see them as flip sides of the same processes. Beginning in the first
chapter, Petzold presents the general syntax of the XAML and corresponding programming
code with numerous illuminating examples on how the two correspond and interrelate.
The book builds on this base, providing the classic Petzold Windows user interface
(UI) treatment, to show Windows developers how to create next-generation interfaces
for their applications. 
<br /></em><br /><img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8a19335e-8ec5-4088-82e0-6517000be2cb" /><br /><hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Yes, it's here!</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,8a19335e-8ec5-4088-82e0-6517000be2cb.aspx</guid>
      <link>http://www.snowball.be/2006/09/06/Yes+Its+Here.aspx</link>
      <pubDate>Wed, 06 Sep 2006 19:59:07 GMT</pubDate>
      <description>&lt;p&gt;
My new bible has arrived :-)&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img src="http://www.snowball.be/content/binary/appcodemarkup.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
Appearantly, one of the first in Europe, since the release was scheduled for 13th
September in the US.&lt;br&gt;
&lt;br&gt;
At first glace, it seems a very complete book, covering every aspect in WPF. I'll
be posting a review later when I have read more in the book...&lt;br&gt;
&lt;br&gt;
From Amazon.com:&lt;br&gt;
&lt;em&gt;In this book, Windows programming legend Charles Petzold covers in parallel the
two interfaces that make up the Windows Presentation Foundation (WPF). From the outset,
the reader can shift focus seamlessly between Extensible Application Markup Language
(XAML) and C# to see them as flip sides of the same processes. Beginning in the first
chapter, Petzold presents the general syntax of the XAML and corresponding programming
code with numerous illuminating examples on how the two correspond and interrelate.
The book builds on this base, providing the classic Petzold Windows user interface
(UI) treatment, to show Windows developers how to create next-generation interfaces
for their applications. 
&lt;br&gt;
&lt;/em&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=8a19335e-8ec5-4088-82e0-6517000be2cb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,8a19335e-8ec5-4088-82e0-6517000be2cb.aspx</comments>
      <category>.net</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=410a8a1f-3552-4239-a97e-6a1579cdfb74</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,410a8a1f-3552-4239-a97e-6a1579cdfb74.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,410a8a1f-3552-4239-a97e-6a1579cdfb74.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=410a8a1f-3552-4239-a97e-6a1579cdfb74</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, I came across a nice <a href="http://www.paulstovell.net/Articles/WPFValidation.aspx">article </a>on
validation and validation controls in WPF. Certainly worth the read if you're into
WPF!<br /><br />
And here is another interesting WPF link: <a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060817WPFKG/manifest.xml">content
in WPF</a>.<br /></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=410a8a1f-3552-4239-a97e-6a1579cdfb74" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Validation in WPF</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,410a8a1f-3552-4239-a97e-6a1579cdfb74.aspx</guid>
      <link>http://www.snowball.be/2006/08/20/Validation+In+WPF.aspx</link>
      <pubDate>Sun, 20 Aug 2006 19:36:21 GMT</pubDate>
      <description>&lt;p&gt;
Today, I came across a nice &lt;a href="http://www.paulstovell.net/Articles/WPFValidation.aspx"&gt;article &lt;/a&gt;on
validation and validation controls in WPF. Certainly worth the read if you're into
WPF!&lt;br&gt;
&lt;br&gt;
And here is another interesting WPF link: &lt;a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060817WPFKG/manifest.xml"&gt;content
in WPF&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=410a8a1f-3552-4239-a97e-6a1579cdfb74" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,410a8a1f-3552-4239-a97e-6a1579cdfb74.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=dbdf7a54-6388-4c89-ad86-30120dcbf905</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,dbdf7a54-6388-4c89-ad86-30120dcbf905.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,dbdf7a54-6388-4c89-ad86-30120dcbf905.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=dbdf7a54-6388-4c89-ad86-30120dcbf905</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In this tutorial, I'm going to explain several 2D effects that can be performed on
images, using only XAML code. By the end of this tutorial, you'll know:
</p>
        <ul>
          <li>
how to create image refections 
</li>
          <li>
how to skew images 
</li>
          <li>
how to drop shadows</li>
        </ul>
        <p>
So let's get to it!<br /><br />
Create an empty WinFX application. We'll use the Window1.xaml. 
<br />
Make the background of the image somewhat darker, so we can better see the effects
we'll create further on. For this, simply use the Window.Background property. Also,
set the Height to 600 and Width to 800.<br /><br /><font face="Courier New">&lt;Window x:Class="Reflection.Window1"<br />
   xmlns="</font><a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;"><font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</font></a><br /><font face="Courier New">   xmlns:x="</font><a href="http://schemas.microsoft.com/winfx/2006/xaml&quot;"><font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml"</font></a><br /><font face="Courier New">   Title="Reflection" Height="600" Width="800" <br />
   Background="#CCCCCC"<br />
&gt;</font><br /><br /><strong>Add the image to your project<br /></strong>Select an image to include in your project. I'll do this tutorial with the
image included in my project, but you can of course use any image you want. The image
has to be included in your project. Once included, go to the properties window, and
with the image selected in the solution explorer, set the "Build Action" to "Content"
and "Copy to output directory" to "Copy always". This ensures that the image will
be available when running the project.<br /><br /><strong>Let's XAML<br /></strong>Finally, we're ready to do some XAML'ing (don't know if that is already a
word, but I vote it should become one though!).<br />
Since we will not be needing any advanced layout of the window, we'll use a simple
StackPanel. By default, a stackpanel places all content it receives in 1 invisible
vertical column. That's enough for this sample.<br /><br />
So, delete the <font face="Courier New">&lt;Grid&gt;</font> and <font face="Courier New">&lt;/Grid&gt;</font> and
replace them with &lt;StackPanel&gt; and &lt;/StackPanel&gt;.<br /><br />
For the image effects, we'll need ... an image. Add an simple image element to begin
with. Also, give it a name, we'll be needing this name later on. Use the following
code:<br /><br /><font face="Courier New">&lt;Image Source="image.jpg" Width="200" Height="300" x:Name="myImage"&gt;&lt;/Image&gt;<br /></font><br />
We'll now start adding the reflection effect. For reflections, the VisualBrush is
very handy.<br />
What is the VisualBrush? It's a brush, like DrawingBrush, but it can paint with the
contents of any other visual element that derives from Visual. Since Visual is the
base class of all UI elements in WPF, you can paint with almost any markup in a VisualBrush.<br />
Before we can reflect our image, we must add an element in which we can make the reflection
appear. You can do this with a Rectangle, a Border...<br />
For now, I'll use the Border. Add the Border element to the same StackPanel where
you put the image. Since it's a StackPanel, the border is put below the Image (you
can visualize this by setting the Background to some color).<br /><br /><font face="Courier New">&lt;Border Width="210" Height="300"&gt;&lt;/Border&gt;</font><br /><br />
Now, we'll use the recently introduced VisualBrush to fill the background of the Border
with the contents of the image (this is why we needed to name the image!).<br />
Add a VisualBrush to the Border like so:<br /><br /><font face="Courier New">&lt;Border.Background&gt;<br />
   &lt;VisualBrush Visual="{Binding ElementName=myImage}"&gt;<br />
   &lt;/VisualBrush&gt;<br />
&lt;/Border.Background&gt;</font></p>
        <p>
          <br />
You should now see something like this:<br /><br /><a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample22.jpg" atomicselection="true"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="272" src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample2_thumb.jpg" width="367" border="0" /></a></p>
        <p>
Of course, for a reflection, we need a mirror effect. This can be achieved by adding
a ScaleTransform on the VisualBrush. By providing a value of -1, the image will be
flipped around the Y-axis.
</p>
        <p>
          <font face="Courier New">&lt;VisualBrush.Transform&gt;<br />
   &lt;ScaleTransform ScaleX="1" ScaleY="-1" CenterX="200" CenterY="150"&gt;&lt;/ScaleTransform&gt;<br />
&lt;/VisualBrush.Transform&gt;</font>
        </p>
        <p>
Now, to complete the reflection-part of this tutorial, we'll add an OpacityMask to
the Border. With this in place, we can make the reflected image fade out into the
backgroud, creating a nice effect. 
<br /><br /><font face="Courier New">&lt;Border.OpacityMask&gt;<br />
   &lt;LinearGradientBrush StartPoint="0,0" EndPoint="0,1"&gt;<br />
      &lt;GradientStop Offset="0" Color="Black"&gt;&lt;/GradientStop&gt;<br />
      &lt;GradientStop Offset="0.6" Color="Transparent"&gt;&lt;/GradientStop&gt;<br />
   &lt;/LinearGradientBrush&gt;<br />
&lt;/Border.OpacityMask&gt;</font></p>
        <p>
This again uses a LinearGradientBrush, with the color being Transparant from 0.6 on.
This means that at 60% of the reflected image, nothing can be seen anymore.<br /><br />
We'll also add a border around the original image in this code. Add the following
code around your image element:<br /><br /><font face="Courier New">&lt;Border BorderBrush="White" BorderThickness="5" HorizontalAlignment="Center"
VerticalAlignment="Center"&gt;<br />
...<br />
&lt;/Border&gt;<br /></font><br />
Your code should now look like the following:<br /></p>
        <p>
          <font face="Courier New">&lt;StackPanel&gt;<br />
   &lt;Border BorderBrush="White" BorderThickness="5" HorizontalAlignment="Center"
VerticalAlignment="Center"&gt;<br />
      &lt;Image Source="image.jpg" Width="200" Height="300"
Stretch="Fill" x:Name="myImage"&gt;&lt;/Image&gt;<br />
   &lt;/Border&gt;<br />
   &lt;Border Width="210" Height="300"&gt;<br />
      &lt;Border.Background&gt;<br />
         &lt;VisualBrush Visual="{Binding
ElementName=myImage}"&gt;<br />
            &lt;VisualBrush.Transform&gt;<br />
               &lt;ScaleTransform
ScaleX="1" ScaleY="-1" CenterX="200" CenterY="150"&gt;&lt;/ScaleTransform&gt;<br />
            &lt;/VisualBrush.Transform&gt;<br />
         &lt;/VisualBrush&gt;<br />
      &lt;/Border.Background&gt;<br />
      &lt;Border.OpacityMask&gt;<br />
         &lt;LinearGradientBrush StartPoint="0,0"
EndPoint="0,1"&gt;<br />
            &lt;GradientStop
Offset="0" Color="Black"&gt;&lt;/GradientStop&gt;<br />
            &lt;GradientStop
Offset="0.6" Color="Transparent"&gt;&lt;/GradientStop&gt;<br />
         &lt;/LinearGradientBrush&gt;<br />
      &lt;/Border.OpacityMask&gt;<br />
   &lt;/Border&gt;<br />
&lt;/StackPanel&gt;<br /></font>
          <br />
And the result should resemble this:<br /><br /><a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample32.jpg" atomicselection="true"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="223" src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample3_thumb.jpg" width="299" border="0" /></a><br /><br /><strong>Skew and Shadows<br /></strong>In the latest part of this tutorial, I'm going to add a shadow to the original
image, and skew both the images, to create a 3D effect.<br />
First, the shadow. Shadows are created using a BitmapEffect. A bitmap effect takes
visual content as input and produces a new surface by applying one or more image filters,
such as a blur or a drop shadow. Currently, there are, among other, the DropShadowEffect,
the BlurBitmapEffect and the EmbossBitmapEffect. More might be added later. We'll
focus on the DropShadowEffect for now. Information on the other effects can be found
in the Windows SDK.<br /><br />
Add the following code to the Border where the original images resides:<br /></p>
        <p>
          <font face="Courier New">&lt;Border.BitmapEffect&gt;<br />
   &lt;BitmapEffectGroup&gt;<br />
      &lt;DropShadowBitmapEffect Color="Black" Direction="20"
ShadowDepth="25" Softness="1" <br />
         Opacity="0.5"/&gt;<br />
   &lt;/BitmapEffectGroup&gt;<br />
&lt;/Border.BitmapEffect&gt;</font>
        </p>
        <p>
This adds the dropshadow to the white border containing the image. These properties
are self-explaining, so I'm not going any deeper into this.<br /><br />
Now, to finish, we have to skew both the image and the reflection to create the effect
of depth. For this, we'll again use a transformation, this time a RenderTransform.
The Angle-properties provided indicate the angle for the rotation.<br />
The following code has to be added to the original image. 
</p>
        <p>
          <font face="Courier New">&lt;Border.RenderTransform&gt;<br />
   &lt;SkewTransform CenterX="0" CenterY="0" AngleX="0" AngleY="10"
/&gt;<br />
&lt;/Border.RenderTransform&gt;</font>
        </p>
        <p>
The reflection needs a re-centering, so we provide a value for the CenterX and CenterY
properties.<br /><br />
The result you get should like the following:<br /><br /><a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample43.jpg" atomicselection="true"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="288" src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample4_thumb1.jpg" width="388" border="0" /></a><br /><br />
I hope this WPF example can help you in creating great layouts with this fantastic
new language!<br /><br />
The complete solution can be downloaded below.
</p>
        <p>
          <a href="http://www.snowball.be/content/binary/ImageEffects.zip">ImageEffects.zip
(120.66 KB)</a>
          <br />
          <br />
Note that you need Visual Studio 2005/Visual C# Express with .net 3.0 installed. This
code is tested with the June CTP.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=dbdf7a54-6388-4c89-ad86-30120dcbf905" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF tutorial: how to create great image effects with WPF/XAML</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,dbdf7a54-6388-4c89-ad86-30120dcbf905.aspx</guid>
      <link>http://www.snowball.be/2006/08/18/WPF+Tutorial+How+To+Create+Great+Image+Effects+With+WPFXAML.aspx</link>
      <pubDate>Fri, 18 Aug 2006 21:15:10 GMT</pubDate>
      <description>&lt;p&gt;
In this tutorial, I'm going to explain several 2D effects that can be performed on
images, using only XAML code. By the end of this tutorial, you'll know:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
how to create image refections 
&lt;li&gt;
how to skew images 
&lt;li&gt;
how to drop shadows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So let's get to it!&lt;br&gt;
&lt;br&gt;
Create an empty WinFX application. We'll use the Window1.xaml. 
&lt;br&gt;
Make the background of the image somewhat darker, so we can better see the effects
we'll create further on. For this, simply use the Window.Background property. Also,
set the Height to 600 and Width to 800.&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Window x:Class="Reflection.Window1"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns="&lt;/font&gt;&lt;a href='http://schemas.microsoft.com/winfx/2006/xaml/presentation"'&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x="&lt;/font&gt;&lt;a href='http://schemas.microsoft.com/winfx/2006/xaml"'&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml"&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Title="Reflection" Height="600" Width="800"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Background="#CCCCCC"&lt;br&gt;
&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Add the image to your project&lt;br&gt;
&lt;/strong&gt;Select an image to include in your project. I'll do this tutorial with the
image included in my project, but you can of course use any image you want. The image
has to be included in your project. Once included, go to the properties window, and
with the image selected in the solution explorer, set the "Build Action" to "Content"
and "Copy to output directory" to "Copy always". This ensures that the image will
be available when running the project.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Let's XAML&lt;br&gt;
&lt;/strong&gt;Finally, we're ready to do some XAML'ing (don't know if that is already a
word, but I vote it should become one though!).&lt;br&gt;
Since we will not be needing any advanced layout of the window, we'll use a simple
StackPanel. By default, a stackpanel places all content it receives in 1 invisible
vertical column. That's enough for this sample.&lt;br&gt;
&lt;br&gt;
So, delete the &lt;font face="Courier New"&gt;&amp;lt;Grid&amp;gt;&lt;/font&gt; and &lt;font face="Courier New"&gt;&amp;lt;/Grid&amp;gt;&lt;/font&gt; and
replace them with &amp;lt;StackPanel&amp;gt; and &amp;lt;/StackPanel&amp;gt;.&lt;br&gt;
&lt;br&gt;
For the image effects, we'll need ... an image. Add an simple image element to begin
with. Also, give it a name, we'll be needing this name later on. Use the following
code:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Image Source="image.jpg" Width="200" Height="300" x:Name="myImage"&amp;gt;&amp;lt;/Image&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
We'll now start adding the reflection effect. For reflections, the VisualBrush is
very handy.&lt;br&gt;
What is the VisualBrush? It's a brush, like DrawingBrush, but it can paint with the
contents of any other visual element that derives from Visual. Since Visual is the
base class of all UI elements in WPF, you can paint with almost any markup in a VisualBrush.&lt;br&gt;
Before we can reflect our image, we must add an element in which we can make the reflection
appear. You can do this with a Rectangle, a Border...&lt;br&gt;
For now, I'll use the Border. Add the Border element to the same StackPanel where
you put the image. Since it's a StackPanel, the border is put below the Image (you
can visualize this by setting the Background to some color).&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border Width="210" Height="300"&amp;gt;&amp;lt;/Border&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Now, we'll use the recently introduced VisualBrush to fill the background of the Border
with the contents of the image (this is why we needed to name the image!).&lt;br&gt;
Add a VisualBrush to the Border like so:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border.Background&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;VisualBrush Visual="{Binding ElementName=myImage}"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/VisualBrush&amp;gt;&lt;br&gt;
&amp;lt;/Border.Background&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
You should now see something like this:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample22.jpg" atomicselection="true"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=272 src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample2_thumb.jpg" width=367 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Of course, for a reflection, we need a mirror effect. This can be achieved by adding
a ScaleTransform on the VisualBrush. By providing a value of -1, the image will be
flipped around the Y-axis.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;VisualBrush.Transform&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ScaleTransform ScaleX="1" ScaleY="-1" CenterX="200" CenterY="150"&amp;gt;&amp;lt;/ScaleTransform&amp;gt;&lt;br&gt;
&amp;lt;/VisualBrush.Transform&amp;gt;&lt;/font&gt; 
&lt;p&gt;
Now, to complete the reflection-part of this tutorial, we'll add an OpacityMask to
the Border. With this in place, we can make the reflected image fade out into the
backgroud, creating a nice effect. 
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border.OpacityMask&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearGradientBrush StartPoint="0,0" EndPoint="0,1"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Offset="0" Color="Black"&amp;gt;&amp;lt;/GradientStop&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop Offset="0.6" Color="Transparent"&amp;gt;&amp;lt;/GradientStop&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearGradientBrush&amp;gt;&lt;br&gt;
&amp;lt;/Border.OpacityMask&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
This again uses a LinearGradientBrush, with the color being Transparant from 0.6 on.
This means that at 60% of the reflected image, nothing can be seen anymore.&lt;br&gt;
&lt;br&gt;
We'll also add a border around the original image in this code. Add the following
code around your image element:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border BorderBrush="White" BorderThickness="5" HorizontalAlignment="Center"
VerticalAlignment="Center"&amp;gt;&lt;br&gt;
...&lt;br&gt;
&amp;lt;/Border&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
Your code should now look like the following:&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;StackPanel&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Border BorderBrush="White" BorderThickness="5" HorizontalAlignment="Center"
VerticalAlignment="Center"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Image Source="image.jpg" Width="200" Height="300"
Stretch="Fill" x:Name="myImage"&amp;gt;&amp;lt;/Image&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Border&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Border Width="210" Height="300"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Border.Background&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;VisualBrush Visual="{Binding
ElementName=myImage}"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;VisualBrush.Transform&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ScaleTransform
ScaleX="1" ScaleY="-1" CenterX="200" CenterY="150"&amp;gt;&amp;lt;/ScaleTransform&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/VisualBrush.Transform&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/VisualBrush&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Border.Background&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Border.OpacityMask&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;LinearGradientBrush StartPoint="0,0"
EndPoint="0,1"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop
Offset="0" Color="Black"&amp;gt;&amp;lt;/GradientStop&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop
Offset="0.6" Color="Transparent"&amp;gt;&amp;lt;/GradientStop&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/LinearGradientBrush&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Border.OpacityMask&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Border&amp;gt;&lt;br&gt;
&amp;lt;/StackPanel&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
And the result should resemble this:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample32.jpg" atomicselection="true"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=223 src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample3_thumb.jpg" width=299 border=0&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Skew and Shadows&lt;br&gt;
&lt;/strong&gt;In the latest part of this tutorial, I'm going to add a shadow to the original
image, and skew&amp;nbsp;both the images, to create a 3D effect.&lt;br&gt;
First, the shadow. Shadows are created using a BitmapEffect. A bitmap effect takes
visual content as input and produces a new surface by applying one or more image filters,
such as a blur or a drop shadow. Currently, there are, among other, the DropShadowEffect,
the BlurBitmapEffect and the EmbossBitmapEffect. More might be added later. We'll
focus on the DropShadowEffect for now. Information on the other effects can be found
in the Windows SDK.&lt;br&gt;
&lt;br&gt;
Add the following code to the Border where the original images resides:&lt;br&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border.BitmapEffect&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;BitmapEffectGroup&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DropShadowBitmapEffect Color="Black" Direction="20"
ShadowDepth="25" Softness="1"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Opacity="0.5"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/BitmapEffectGroup&amp;gt;&lt;br&gt;
&amp;lt;/Border.BitmapEffect&amp;gt;&lt;/font&gt; 
&lt;p&gt;
This adds the dropshadow to the white border containing the image. These properties
are self-explaining, so I'm not going any deeper into this.&lt;br&gt;
&lt;br&gt;
Now, to finish, we have to skew both the image and the reflection to create the effect
of depth. For this, we'll again use a transformation, this time a RenderTransform.
The Angle-properties provided indicate the angle for the rotation.&lt;br&gt;
The following code has to be added to the original image. 
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Border.RenderTransform&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SkewTransform CenterX="0" CenterY="0" AngleX="0" AngleY="10"
/&amp;gt;&lt;br&gt;
&amp;lt;/Border.RenderTransform&amp;gt;&lt;/font&gt; 
&lt;p&gt;
The reflection needs a re-centering, so we provide a value for the CenterX and CenterY
properties.&lt;br&gt;
&lt;br&gt;
The result you get should like the following:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample43.jpg" atomicselection="true"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=288 src="http://www.snowball.be/content/binary/WPFtutorialhowtocreategreatimageeffectsw_12DE0/2Dsample4_thumb1.jpg" width=388 border=0&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
I hope this WPF example can help you in creating great layouts with this fantastic
new language!&lt;br&gt;
&lt;br&gt;
The complete solution can be downloaded below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.snowball.be/content/binary/ImageEffects.zip"&gt;ImageEffects.zip
(120.66 KB)&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Note that you need Visual Studio 2005/Visual C# Express with .net 3.0 installed. This
code is tested with the June CTP.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=dbdf7a54-6388-4c89-ad86-30120dcbf905" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,dbdf7a54-6388-4c89-ad86-30120dcbf905.aspx</comments>
      <category>.net</category>
      <category>C#</category>
      <category>Programming</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=bfa7e03e-1b64-4d68-8455-a402362e987b</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,bfa7e03e-1b64-4d68-8455-a402362e987b.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,bfa7e03e-1b64-4d68-8455-a402362e987b.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=bfa7e03e-1b64-4d68-8455-a402362e987b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm through with learning WPF (Windows Presentation Foundation), so now I'll have
more time to write some samples for my blog, so everybode can start learning a little
on WPF (that double-U-P-F ;-) ).<br /><br />
Today, I'm going to show you a small sample, in which I use a gradient and a storyboard
to create a sort of a flashing circle. This could be used to draw the user's attention
to something in the UI.<br /><br />
Here is the sample code:<br /><br /></p>
        <p>
          <font face="Courier New">&lt;Page xmlns="</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</font>
          </a>
          <br />
          <font face="Courier New">xmlns:x=</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml</font>
          </a>
          <font face="Courier New">
            <br />
          </font>
          <font face="Courier New">WindowTitle="www.snowball.be - WPF Examples" Background="White"&gt;<br />
&lt;DockPanel&gt;<br />
   &lt;Ellipse Width="200" Height="200" Name="MyEllipse"&gt;<br />
      &lt;Ellipse.Fill&gt;<br />
         &lt;RadialGradientBrush &gt;<br />
            &lt;GradientStop
Offset="0" Color="#CCCCCCCC" /&gt;<br />
            &lt;GradientStop
Offset="0.5" Color="white" /&gt;<br />
            &lt;GradientStop
Offset="1" Color="black"/&gt;<br />
         &lt;/RadialGradientBrush &gt;<br />
      &lt;/Ellipse.Fill&gt;<br />
   &lt;/Ellipse&gt;<br />
&lt;DockPanel.Triggers&gt;<br />
   &lt;EventTrigger RoutedEvent="Page.Loaded"&gt;<br />
      &lt;BeginStoryboard Name="MyBeginStoryBoard"&gt;<br />
         &lt;Storyboard Name="MyStoryBoard"&gt;<br />
            &lt;DoubleAnimation
Storyboard.TargetName="MyEllipse" Storyboard.TargetProperty="(Ellipse.Height)" <br />
               From="0"
To="200" AutoReverse="true"<br />
               RepeatBehavior="0:0:10"
BeginTime="0:0:0" /&gt;<br />
            &lt;DoubleAnimation
Storyboard.TargetName="MyEllipse" Storyboard.TargetProperty="(Ellipse.Width)" <br />
               From="0"
To="200" AutoReverse="true"<br />
               RepeatBehavior="0:0:10"
BeginTime="0:0:0" /&gt;<br />
         &lt;/Storyboard&gt;<br />
      &lt;/BeginStoryboard&gt;<br />
   &lt;/EventTrigger&gt;<br />
&lt;/DockPanel.Triggers&gt;<br />
&lt;/DockPanel&gt;<br />
&lt;/Page&gt;<br /></font>
          <br />
First, I create an circle, which is actually an ellipse with identical width and height
(one could also use the RadiusX and RadiusY properties, the result would be the same). 
<br /><br /><font face="Courier New">&lt;Ellipse Width="200" Height="200" Name="MyEllipse"&gt;</font><br /><br />
Then, we use a Brush, in this case, the RadialGradientBrush, to create a gradient
fill in the ellipse. No longer are the "GradientStops" or the "GradientStopsCollection"
tags neccessary (they were in previous CTP's, but now they can be omitted).<br />
To specify the colors, we use several GradientStop elements. The offset specifies
where the color should "start". This is a relative value, and thus can't be more than
1. In this case, I specify 3 colors.<br /><br /><font face="Courier New">&lt;GradientStop Offset="0" Color="#CCCCCCCC" /&gt;<br />
&lt;GradientStop Offset="0.5" Color="white" /&gt;<br />
&lt;GradientStop Offset="1" Color="black"/&gt;<br /></font><br />
Now, to create the flashing effect, we have to use an animation. To start the animation,
we use a trigger, in this case, an event trigger, which is routed to the Loaded event.
This results in the trigger firing when the page loads. 
<br /><br /><font face="Courier New">&lt;EventTrigger RoutedEvent="Page.Loaded"&gt;</font><br /><br />
For the animation itself, we use the storyboard. In this storyboard, which is like
the name says, a series of steps that will be executed. You can compare it to a band
of drawings that form a comic.<br />
The storyboard thus consists of several animations. In this case, I use a DoubleAnimation,
because the property I'm going to change, is of value Double: I'm going to alter the
Height and Width property of the Ellipse. These are indeed Double values.<br /><br />
In the first animation, I specify that I want to animate the ellipse I created earlier,
by setting the TargetName, and the property I want to change is the Height. In the
From and the To properties, I specify what the values for the Height should be. In
this case, I want the ellipse to pop up out of nothing, so I set the From to 0 and
the To to 200. 
<br /><br />
The RepeatBehavior property specifies how long this animation should repeat, in this
case, I set it to 10 seconds. Note that several animations can have different RepeatBehaviors:
one can go one longer than the other. The BeginTime simply specifies when the animation
should start: you can build in a delay.<br />
Finally, the AutoReverse property indicates that WPF should reverse the animation
after completed.<br /><br />
The second animation does essentially the same, but for the width.<br />
Both these animations can't be grouped into one, which is a pity.<br /><br />
The result looks like this:<br /><br /></p>
        <img height="510" src="http://www.snowball.be/content/binary/WPFanimation.JPG" width="762" border="0" />
        <br />
        <br />
        <a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/WPF+Examples+A+Small+Example+On+Animation+And+Gradients.aspx">
          <img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/WPF+Examples+A+Small+Example+On+Animation+And+Gradients.aspx" border="0" />
        </a>
        <br />
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bfa7e03e-1b64-4d68-8455-a402362e987b" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF Examples: a small example on animation and gradients</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,bfa7e03e-1b64-4d68-8455-a402362e987b.aspx</guid>
      <link>http://www.snowball.be/2006/08/18/WPF+Examples+A+Small+Example+On+Animation+And+Gradients.aspx</link>
      <pubDate>Fri, 18 Aug 2006 16:37:02 GMT</pubDate>
      <description>&lt;p&gt;
I'm through with learning WPF (Windows Presentation Foundation), so now I'll have
more time to write some samples for my blog, so everybode can start learning a little
on WPF (that double-U-P-F ;-) ).&lt;br&gt;
&lt;br&gt;
Today, I'm going to show you a small sample, in which I use a gradient and a storyboard
to create a sort of a flashing circle. This could be used to draw the user's attention
to something in the UI.&lt;br&gt;
&lt;br&gt;
Here is the sample code:&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Page xmlns="&lt;/font&gt;&lt;a href='http://schemas.microsoft.com/winfx/2006/xaml/presentation"'&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;xmlns:x=&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt; 
&lt;br&gt;
&lt;/font&gt;&lt;font face="Courier New"&gt;WindowTitle="www.snowball.be - WPF Examples" Background="White"&amp;gt;&lt;br&gt;
&amp;lt;DockPanel&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Ellipse Width="200" Height="200" Name="MyEllipse"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Ellipse.Fill&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;RadialGradientBrush &amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop
Offset="0" Color="#CCCCCCCC" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop
Offset="0.5" Color="white" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;GradientStop
Offset="1" Color="black"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/RadialGradientBrush &amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Ellipse.Fill&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Ellipse&amp;gt;&lt;br&gt;
&amp;lt;DockPanel.Triggers&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;EventTrigger RoutedEvent="Page.Loaded"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;BeginStoryboard Name="MyBeginStoryBoard"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Storyboard Name="MyStoryBoard"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimation
Storyboard.TargetName="MyEllipse" Storyboard.TargetProperty="(Ellipse.Height)"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;From="0"
To="200" AutoReverse="true"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RepeatBehavior="0:0:10"
BeginTime="0:0:0" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DoubleAnimation
Storyboard.TargetName="MyEllipse" Storyboard.TargetProperty="(Ellipse.Width)"&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;From="0"
To="200" AutoReverse="true"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RepeatBehavior="0:0:10"
BeginTime="0:0:0" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Storyboard&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/BeginStoryboard&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/EventTrigger&amp;gt;&lt;br&gt;
&amp;lt;/DockPanel.Triggers&amp;gt;&lt;br&gt;
&amp;lt;/DockPanel&amp;gt;&lt;br&gt;
&amp;lt;/Page&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
First, I create an circle, which is actually an ellipse with identical width and height
(one could also use the RadiusX and RadiusY properties, the result would be the same). 
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Ellipse Width="200" Height="200" Name="MyEllipse"&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
Then, we use a Brush, in this case, the RadialGradientBrush, to create a gradient
fill in the ellipse. No longer are the "GradientStops" or the "GradientStopsCollection"
tags neccessary (they were in previous CTP's, but now they can be omitted).&lt;br&gt;
To specify the colors, we use several GradientStop elements. The offset specifies
where the color should "start". This is a relative value, and thus can't be more than
1. In this case, I specify 3 colors.&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;GradientStop Offset="0" Color="#CCCCCCCC" /&amp;gt;&lt;br&gt;
&amp;lt;GradientStop Offset="0.5" Color="white" /&amp;gt;&lt;br&gt;
&amp;lt;GradientStop Offset="1" Color="black"/&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
Now, to create the flashing effect, we have to use an animation. To start the animation,
we use a trigger, in this case, an event trigger, which is routed to the Loaded event.
This results in the trigger firing when the page loads. 
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;EventTrigger RoutedEvent="Page.Loaded"&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
For the animation itself, we use the storyboard. In this storyboard, which is like
the name says, a series of steps that will be executed. You can compare it to a band
of drawings that form a comic.&lt;br&gt;
The storyboard thus consists of several animations. In this case, I use a DoubleAnimation,
because the property I'm going to change, is of value Double: I'm going to alter the
Height and Width property of the Ellipse. These are indeed Double values.&lt;br&gt;
&lt;br&gt;
In the first animation, I specify that I want to animate the ellipse I created earlier,
by setting the TargetName, and the property I want to change is the Height. In the
From and the To properties, I specify what the values for the Height should be. In
this case, I want the ellipse to pop up out of nothing, so I set the From to 0 and
the To to 200. 
&lt;br&gt;
&lt;br&gt;
The RepeatBehavior property specifies how long this animation should repeat, in this
case, I set it to 10 seconds. Note that several animations can have different RepeatBehaviors:
one can go one longer than the other. The BeginTime simply specifies when the animation
should start: you can build in a delay.&lt;br&gt;
Finally, the AutoReverse property indicates that WPF should reverse the animation
after completed.&lt;br&gt;
&lt;br&gt;
The second animation does essentially the same, but for the width.&lt;br&gt;
Both these animations can't be grouped into one, which is a pity.&lt;br&gt;
&lt;br&gt;
The result looks like this:&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img height=510 src="http://www.snowball.be/content/binary/WPFanimation.JPG" width=762 border=0&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/WPF+Examples+A+Small+Example+On+Animation+And+Gradients.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/WPF+Examples+A+Small+Example+On+Animation+And+Gradients.aspx" border=0&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=bfa7e03e-1b64-4d68-8455-a402362e987b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,bfa7e03e-1b64-4d68-8455-a402362e987b.aspx</comments>
      <category>.net</category>
      <category>C#</category>
      <category>Programming</category>
      <category>Visual Studio.net</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=b6cf6c10-9094-4bd2-815e-fdaed0fc3471</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,b6cf6c10-9094-4bd2-815e-fdaed0fc3471.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,b6cf6c10-9094-4bd2-815e-fdaed0fc3471.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=b6cf6c10-9094-4bd2-815e-fdaed0fc3471</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As previously announced here, on September 25th, Microsoft is organizing an event
on .net 3.0 in Kinepolis Brussels. David Boschmans announced the complete agenda on
his <a href="http://blogs.msdn.com/davbosch/archive/2006/08/10/694371.aspx">site</a> today.<br />
Today, the line-up and sessions are announced. A new item is that we, the visitors,
can now vote which sessions we want to see.<br /><br />
So, everybody, go vote AND PLEASE don't vote for the introductions!!<br /><br />
Vote <a href="http://www.microsoft.com/belux/msdn/nl/events/2006/net30_vote.mspx">here</a>.<br />
General information on the event can be found <a href="http://www.microsoft.com/belux/msdn/nl/events/2006/net30.mspx">here</a>.
</p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b6cf6c10-9094-4bd2-815e-fdaed0fc3471" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>Ladies and gentlemen, your votes please</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,b6cf6c10-9094-4bd2-815e-fdaed0fc3471.aspx</guid>
      <link>http://www.snowball.be/2006/08/10/Ladies+And+Gentlemen+Your+Votes+Please.aspx</link>
      <pubDate>Thu, 10 Aug 2006 19:38:54 GMT</pubDate>
      <description>&lt;p&gt;
As previously announced here, on September 25th, Microsoft is organizing an event
on .net 3.0 in Kinepolis Brussels. David Boschmans announced the complete agenda on
his &lt;a href="http://blogs.msdn.com/davbosch/archive/2006/08/10/694371.aspx"&gt;site&lt;/a&gt; today.&lt;br&gt;
Today, the line-up and sessions are announced. A new item is that we, the visitors,
can now vote which sessions we want to see.&lt;br&gt;
&lt;br&gt;
So, everybody, go vote AND PLEASE don't vote for the introductions!!&lt;br&gt;
&lt;br&gt;
Vote &lt;a href="http://www.microsoft.com/belux/msdn/nl/events/2006/net30_vote.mspx"&gt;here&lt;/a&gt;.&lt;br&gt;
General information on the event can be found &lt;a href="http://www.microsoft.com/belux/msdn/nl/events/2006/net30.mspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=b6cf6c10-9094-4bd2-815e-fdaed0fc3471" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,b6cf6c10-9094-4bd2-815e-fdaed0fc3471.aspx</comments>
      <category>.net</category>
      <category>Microsoft</category>
      <category>Programming</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=5d438bc6-8d35-42ea-ad64-34f60daf0d30</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,5d438bc6-8d35-42ea-ad64-34f60daf0d30.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,5d438bc6-8d35-42ea-ad64-34f60daf0d30.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=5d438bc6-8d35-42ea-ad64-34f60daf0d30</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
People have been asking me questions about WPF, mostly how to get started.<br />
Since WPF is still somewhat obscure, in this article I’m going to try to make things
a little more clear to get you on your way using WPF.
</p>
        <p>
As you might or might not know, WPF is part of .net 3.0, formerly known as WinFX.
Other components included in .net 3.0 are WCF (Windows Communication Foundation),
WF (Windows Workflow Foundation) and CardSpace (formerly InfoCard). 
</p>
        <p>
For starters, you need an operating system supporting WPF. This can be:<br />
-Windows XP SP2<br />
-Windows 2003<br />
-Windows Vista
</p>
        <p>
I do recommend running .net 3.0 in a virtual pc environment! Since a lot of CTP’s,
beta’s and RC’s are coming our way, it’s easier to just create a VPC with Windows
XP or 2003 , and install .net 3.0! Since Virtual PC is free anyhow, I don’t see a
reason why not doing it this way! 
<br />
Uninstalling beta software can be a real pain, so why compromise your precious production
environment!?<br />
(For Virtual PC go <a href="http://www.microsoft.com/downloads/details.aspx?familyid=6d58729d-dfa8-40bf-afaf-20bcb7f01cd1&amp;displaylang=en">here</a>)
</p>
        <p>
On both XP and 2003, you need to install the runtime, to be able to run WPF applications.
This can be a web-install (of around 2.5 MB, and then the rest is downloaded) or you
might as well download the whole package. 
</p>
        <p>
Now, there are some issues with the latest CTP of July… This latest release does not
come with the Visual Studio 2005 extensions, required to build your WPF applications
in VS.<br />
Therefore, if you want to start developing (or better, start playing around…), I suggest
you stick to the June CTP, which has full support for all the tools. 
</p>
        <p>
So, if you want to develop within Visual Studio, follow the next steps. If not, skip
this section.<br />
The June CTP runtime can be downloaded <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8d09697e-4868-4d8d-a4cf-9b82a2ae542d&amp;DisplayLang=en">here</a>.<br /><br />
To start developing, you might want to install the SDK. It’s a big download of around
1.1GB. It comes with lots of samples and tools, like XAMLPad. The SDK can be downloaded <a href="http://download.microsoft.com/download/2/a/f/2afd6871-3b3a-4646-b98b-f11cd21b311f/6.0.5472.2.1.WindowsSDK_Vista_idw.DVD.Rel.img">here</a>.
</p>
        <p>
The SDK is however not required when you intend to develop in Visual Studio! For VS,
Microsoft has released some extensions and templates, which will make your WPF-life
a lot easier! If you don’t have Visual Studio, you can use one of the free Express
editions. 
<br />
For the download, go <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1A994549-94CB-4F61-903D-A8C8E453EEF4&amp;displaylang=en">here</a>.
</p>
        <p>
We’re almost done!<br />
Microsoft is also preparing a set of designer tools for WPF, the Expression suite. 
<br />
The Interactive Designer outputs XAML code, which can be used to enhance the layout
of your applications, without even knowing XAML!<br />
For the Interactive Designer, go <a href="http://www.microsoft.com/products/expression/en/interactive_designer/id_free_trial.aspx">here</a>.<br />
The Graphic Designer allows you to create images and export these as XAML code to
be included in your WPF projects.<br />
This can be downloaded <a href="http://www.microsoft.com/products/expression/en/graphic_designer/gd_free_trial.aspx">here</a>. 
<br /><br />
That’s it! Now, you are ready to start! 
</p>
        <p>
If you want the latest release, and don’t care for the Visual Studio Extensions, go
for the July CTP, which was released July 18th. 
</p>
        <p>
The runtime can be downloaded <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=62057A6F-185F-41DB-ABE5-678F6FC388F0&amp;displaylang=en">here</a>.<br />
And the SDK is found right <a href="http://download.microsoft.com/download/2/a/f/2afd6871-3b3a-4646-b98b-f11cd21b311f/6.0.5472.2.1.WindowsSDK_Vista_idw.DVD.Rel.img">here</a>.
</p>
        <p>
I did find some work around to get this latest CTP working with Orcas, but since I
didn’t try it myself, I cannot guarantee that it will work.<br />
The “fix” goes as follows:<br /><br /><em>Instal Orcas in VS using the misexec override: msiexec /i vsextwfx.msi WRC_INSTALLED_OVERRIDE=1 </em></p>
        <p>
          <em>The override bypasses the installation version checking so you can install the
extensions. </em>
        </p>
        <p>
          <em>After this you have July CTP installed and Orcas from the previous version. This
works just fine. </em>
        </p>
        <p>
          <em>To solve your problem with the Orcas designer trying to open: </em>
        </p>
        <p>
          <em>Right click on a .xaml file in your solution and choose "open with...". Choose
"xml Editor" and click on "Set as default". Now all .xaml files will open with the
xml editor instead of trying to open the unfinished Orcas designer.</em>
        </p>
        <p>
In a next article, I’ll post some interesting resources to get you building WPF applications
in no time!<br /><br /></p>
        <a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/How+To+WPF+Getting+Started.aspx">
          <img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/How+To+WPF+Getting+Started.aspx" border="0" alt="kick it on DotNetKicks.com" />
        </a>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=5d438bc6-8d35-42ea-ad64-34f60daf0d30" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>How to WPF: getting started</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,5d438bc6-8d35-42ea-ad64-34f60daf0d30.aspx</guid>
      <link>http://www.snowball.be/2006/08/02/How+To+WPF+Getting+Started.aspx</link>
      <pubDate>Wed, 02 Aug 2006 10:06:10 GMT</pubDate>
      <description>&lt;p&gt;
People have been asking me questions about WPF, mostly how to get started.&lt;br&gt;
Since WPF is still somewhat obscure, in this article I’m going to try to make things
a little more clear to get you on your way using WPF.
&lt;/p&gt;
&lt;p&gt;
As you might or might not know, WPF is part of .net 3.0, formerly known as WinFX.
Other components included in .net 3.0 are WCF (Windows Communication Foundation),
WF (Windows Workflow Foundation) and CardSpace (formerly InfoCard). 
&lt;/p&gt;
&lt;p&gt;
For starters, you need an operating system supporting WPF. This can be:&lt;br&gt;
-Windows XP SP2&lt;br&gt;
-Windows 2003&lt;br&gt;
-Windows Vista
&lt;/p&gt;
&lt;p&gt;
I do recommend running .net 3.0 in a virtual pc environment! Since a lot of CTP’s,
beta’s and RC’s are coming our way, it’s easier to just create a VPC with Windows
XP or 2003 , and install .net 3.0! Since Virtual PC is free anyhow, I don’t see a
reason why not doing it this way! 
&lt;br&gt;
Uninstalling beta software can be a real pain, so why compromise your precious production
environment!?&lt;br&gt;
(For Virtual PC go &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=6d58729d-dfa8-40bf-afaf-20bcb7f01cd1&amp;amp;displaylang=en"&gt;here&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
On both XP and 2003, you need to install the runtime, to be able to run WPF applications.
This can be a web-install (of around 2.5 MB, and then the rest is downloaded) or you
might as well download the whole package. 
&lt;/p&gt;
&lt;p&gt;
Now, there are some issues with the latest CTP of July… This latest release does not
come with the Visual Studio 2005 extensions, required to build your WPF applications
in VS.&lt;br&gt;
Therefore, if you want to start developing (or better, start playing around…), I suggest
you stick to the June CTP, which has full support for all the tools. 
&lt;/p&gt;
&lt;p&gt;
So, if you want to develop within Visual Studio, follow the next steps. If not, skip
this section.&lt;br&gt;
The June CTP runtime can be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8d09697e-4868-4d8d-a4cf-9b82a2ae542d&amp;amp;DisplayLang=en"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
To start developing, you might want to install the SDK. It’s a big download of around
1.1GB. It comes with lots of samples and tools, like XAMLPad. The SDK can be downloaded &lt;a href="http://download.microsoft.com/download/2/a/f/2afd6871-3b3a-4646-b98b-f11cd21b311f/6.0.5472.2.1.WindowsSDK_Vista_idw.DVD.Rel.img"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The SDK is however not required when you intend to develop in Visual Studio! For VS,
Microsoft has released some extensions and templates, which will make your WPF-life
a lot easier! If you don’t have Visual Studio, you can use one of the free Express
editions. 
&lt;br&gt;
For the download, go &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1A994549-94CB-4F61-903D-A8C8E453EEF4&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We’re almost done!&lt;br&gt;
Microsoft is also preparing a set of designer tools for WPF, the Expression suite. 
&lt;br&gt;
The Interactive Designer outputs XAML code, which can be used to enhance the layout
of your applications, without even knowing XAML!&lt;br&gt;
For the Interactive Designer, go &lt;a href="http://www.microsoft.com/products/expression/en/interactive_designer/id_free_trial.aspx"&gt;here&lt;/a&gt;.&lt;br&gt;
The Graphic Designer allows you to create images and export these as XAML code to
be included in your WPF projects.&lt;br&gt;
This can be downloaded &lt;a href="http://www.microsoft.com/products/expression/en/graphic_designer/gd_free_trial.aspx"&gt;here&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
That’s it! Now, you are ready to start! 
&lt;/p&gt;
&lt;p&gt;
If you want the latest release, and don’t care for the Visual Studio Extensions, go
for the July CTP, which was released July 18th. 
&lt;/p&gt;
&lt;p&gt;
The runtime can be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=62057A6F-185F-41DB-ABE5-678F6FC388F0&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br&gt;
And the SDK is found right &lt;a href="http://download.microsoft.com/download/2/a/f/2afd6871-3b3a-4646-b98b-f11cd21b311f/6.0.5472.2.1.WindowsSDK_Vista_idw.DVD.Rel.img"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I did find some work around to get this latest CTP working with Orcas, but since I
didn’t try it myself, I cannot guarantee that it will work.&lt;br&gt;
The “fix” goes as follows:&lt;br&gt;
&lt;br&gt;
&lt;em&gt;Instal Orcas in VS using the misexec override: msiexec /i vsextwfx.msi WRC_INSTALLED_OVERRIDE=1 &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;The override bypasses the installation version checking so you can install the
extensions. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;After this you have July CTP installed and Orcas from the previous version. This
works just fine. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;To solve your problem with the Orcas designer trying to open: &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Right click on a .xaml file in your solution and choose "open with...". Choose
"xml Editor" and click on "Set as default". Now all .xaml files will open with the
xml editor instead of trying to open the unfinished Orcas designer.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
In a next article, I’ll post some interesting resources to get you building WPF applications
in no time!&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/How+To+WPF+Getting+Started.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/How+To+WPF+Getting+Started.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt; &lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=5d438bc6-8d35-42ea-ad64-34f60daf0d30" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,5d438bc6-8d35-42ea-ad64-34f60daf0d30.aspx</comments>
      <category>.net</category>
      <category>Programming</category>
      <category>Vista</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=6786fc11-d5d3-41e2-982f-cb8b51fe11c1</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=6786fc11-d5d3-41e2-982f-cb8b51fe11c1</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
WPF not only stands for new fantastic tools for layout. There are also some very interesting
new ways to implement databinding in your applications. 
<br />
In this article, I’m going to show how you can easily build an RSS reader using the
new databinding features in WPF.
</p>
        <p>
          <strong>How databinding works in WPF</strong>
          <br />
In order not to go too fast, first, let me explain some basic concepts of databinding
in WPF. 
</p>
        <p>
To keep data used in UI in sync with data in the datasource (for example a database),
we can of course use properties. There is nothing wrong if you keep doing this under
WPF. 
<br />
However, WPF provides very handy binding features, that will make your life a lot
easier! 
</p>
        <p>
We could bind the value of a textbox with the following code:<br /><font face="Courier New">&lt;TextBox Text="{Binding Path=Age}"&gt;<br />
&lt;/TextBox&gt;</font><br />
Databinding under WPF uses a <font face="Courier New">Binding</font> object. The above
code declares a textbox in XAML, and assigns the text-property the value of a property
named Age of an object that it is bound to. This is done using the <font face="Courier New">Path</font> property.
The <font face="Courier New">Path</font> property refers to the property of the object
we are binding too.
</p>
        <p>
To know to which object we are binding, we have the <font face="Courier New">DataContext</font> property.
In WPF, every <font face="Courier New">FrameworkElement</font> and also every <font face="Courier New">FrameworkContentElement</font> has
a <font face="Courier New">DataContext</font> property. It is of type object, so we
can bind to whatever we like. 
<br />
The binding does however have some interesting behaviour: if no <font face="Courier New">DataContext</font> is
specified on the object itself (like with our textbox), it goes up the tree in which
the controls are nested. So if we add our textbox in a Grid, it will look if this
Grid has a DataContext. If not, it goes up higher…<br />
This is of course very useful if we have more than one object (say 5 textboxes) binding
to the same object.
</p>
        <p>
Let me show you how to declare an object to which we’ll bind in XAML code (this uses
the new syntax, so to run this, you have to upgrade to beta 2 or higher!)
</p>
        <p>
          <font face="Courier New">&lt;Window x:Class="Snowball.Window2"<br />
    xmlns="</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml/presentation</font>
          </a>
          <font face="Courier New">"<br />
    xmlns:x="</font>
          <a href="http://schemas.microsoft.com/winfx/2006/xaml">
            <font face="Courier New">http://schemas.microsoft.com/winfx/2006/xaml</font>
          </a>
          <font face="Courier New">"<br />
    xmlns:local="clr-namespace:Snowball"<br />
    Title="Snowball" Height="300" Width="300"<br />
    &gt;<br />
  &lt;Window.Resources&gt;<br />
    &lt;local:Person x:Key="Gill" Name="Gill Cleeren" Age="27"/&gt;<br />
  &lt;/Window.Resources&gt;<br />
    &lt;Grid DataContext="{StaticResource Gill}"&gt;<br />
       
<br />
      &lt;TextBox Text="{Binding Path=Name}"&gt;<br />
      &lt;/TextBox&gt;<br />
    &lt;/Grid&gt;<br />
&lt;/Window&gt;</font>
        </p>
        <p>
And in the code-behind:<br /><font face="Courier New">namespace Snowball<br />
{<br />
    public class Person<br />
    {<br />
        private string name;</font></p>
        <p>
          <font face="Courier New">        public string
Name<br />
        {<br />
            get { return name;
}<br />
            set { name = value;
}<br />
        }<br />
        private string age;</font>
        </p>
        <p>
          <font face="Courier New">        public string
Age<br />
        {<br />
            get { return age;
}<br />
            set { age = value;
}<br />
        }</font>
        </p>
        <p>
          <font face="Courier New">        public Person()<br />
        { }<br />
    }<br />
}</font>
        </p>
        <p>
What I have done here, is creating a Person object in XAML. For this to work, you
have to provide a default constructor. 
<br />
First, we have to wire the CLR namespace to be known in XAML: <font face="Courier New">xmlns:local="clr-namespace:Snowball"</font>. 
<br />
Now, we can use the tag “<font face="Courier New">local</font>” to refer to the namespace
in which the Person class resides. 
<br />
Using the following line, we instantiate a Person using XAML:<br /><font face="Courier New">&lt;local:Person x:Key="Gill" Name="Gill Cleeren" Age="27"/&gt;</font></p>
        <p>
The result is a textbox showing my name:
</p>
        <p>
          <img src="http://www.snowball.be/content/binary/WPFDatabinding1.jpg" border="0" />
        </p>
        <p>
Note that if you try this in Visual Studio at the time of writing, you get an error
viewing the design view. Don’t worry, when running, it all works fine.
</p>
        <p>
          <strong>Binding XML data to a list</strong>
          <br />
Most of the time, we bind data to a list: a dropdown, a grid… In this part, I’m going
to bind an RSS feed from my website <a href="http://www.snowball.be">www.snowball.be</a> to
a list. 
<br />
To do this, we’ll need an <font face="Courier New">XmlDataProvider</font>. 
</p>
        <p>
Data can be accessed by using a Provider. Currently, 2 providers exist: the <font face="Courier New">XmlDataProvider</font> and
the <font face="Courier New">ObjectDataProvider</font>. 
<br />
An XmlDataProvider object must be declared within the resources, for example the resources
of the grid:
</p>
        <p>
          <font face="Courier New">&lt;Grid.Resources&gt;<br />
        &lt;XmlDataProvider x:Key="SnowballRSS"
Source="</font>
          <a href="http://www.snowball.be/SyndicationService.asmx/GetRss">
            <font face="Courier New">http://www.snowball.be/SyndicationService.asmx/GetRss</font>
          </a>
          <font face="Courier New">"
/&gt;<br />
&lt;/Grid.Resources&gt;</font>
          <br />
          <br />
The <font face="Courier New">x:Key </font>assigns a name, which we can use in our
code-behind. 
</p>
        <p>
We can now use this object as a datasource for a listbox, like this:<br /><br /><font face="Courier New">&lt;ListBox ItemsSource="{Binding Source={StaticResource
SnowballRSS}, XPath=//rss//channel//item }"&gt;<br />
&lt;/ListBox.ItemTemplate&gt;</font></p>
        <p>
We provide a value for the <font face="Courier New">ItemSource</font>, being an instance
of Binding. For this <font face="Courier New">Binding</font> instance, we provide
the <font face="Courier New">Source</font> property. Since we’re dealing with a resource
that is defined in the XAML itself, we again use <font face="Courier New">StaticResource</font> and
as value, the name of the dataprovider. A second attribute is the <font face="Courier New">XPath</font> expression,
to locate the value we want to show in the listbox. 
</p>
        <p>
This is the result:<br /></p>
        <p>
          <img src="http://www.snowball.be/content/binary/WPFDatabinding2.jpg" border="0" />
          <br />
          <br />
What happens, is that the entire XML tag is being read into a listitem. This is not
desired, so we have to provide some kind of formatting, to tell WPF exactly what we
want to show in the items. 
<br />
This can be accomplished using a datatemplate.
</p>
        <p>
We provide an instance of <font face="Courier New">DataTemplate</font> to be used
as value for the <font face="Courier New">ItemTemplate</font> property of the listbox.
In this datatemplate, we can specify what to show as listitem. 
<br />
In the following code, I’m telling to make each listitem consist of a <font face="Courier New">TextBlock</font>.
The text to be shown is taken from the surrounding Listbox (remember searching for
the data up in the controltree?). In the data it finds, which is an XML tag with subnodes,
we can to take the title as the value for the item. 
<br /><br /><font face="Courier New">&lt;ListBox.ItemTemplate&gt;<br />
   &lt;DataTemplate&gt;<br />
      &lt;TextBlock Text="{Binding XPath=title}"&gt;&lt;/TextBlock&gt;<br />
   &lt;/DataTemplate&gt;<br />
&lt;/ListBox.ItemTemplate&gt;</font></p>
        <p>
When we now run this, we get the following:<br /><br /></p>
        <p>
          <img src="http://www.snowball.be/content/binary/WPFDatabinding3.jpg" border="0" />
          <br />
          <br />
Much better, isn’t it?!
</p>
        <p>
In the next part, we’re going to make the application a little bit more complete,
providing a click event for the listbox, and making sure that some fields are filled
in, again using databinding.
</p>
        <p>
          <strong>Adding the detailsform</strong>
          <br />
We’ll now change the program somewhat to make it display the details of the item selected
in the listbox.
</p>
        <p>
We’ll add a Grid to make it easy to display 3 rows and 2 columns with textblocks,
labels and textboxes. 
<br />
This can be done with the following code:<br /><br /><font face="Courier New">&lt;Grid&gt;<br />
   &lt;Grid.RowDefinitions&gt;<br />
      &lt;RowDefinition Height="30"&gt;&lt;/RowDefinition&gt;<br />
      &lt;RowDefinition Height="30"&gt;&lt;/RowDefinition&gt;<br />
      &lt;RowDefinition Height="*"&gt;&lt;/RowDefinition&gt;<br />
   &lt;/Grid.RowDefinitions&gt;<br />
   &lt;Grid.ColumnDefinitions&gt;<br />
      &lt;ColumnDefinition Width="0.2*"&gt;&lt;/ColumnDefinition&gt;<br />
      &lt;ColumnDefinition Width="0.8*"&gt;&lt;/ColumnDefinition&gt;<br />
   &lt;/Grid.ColumnDefinitions&gt;<br />
   &lt;TextBlock Grid.Row="0" Grid.Column="0"&gt;Title&lt;/TextBlock&gt;<br />
   &lt;Label Grid.Row="0" Grid.Column="1"&gt;&lt;/Label&gt;<br />
   &lt;TextBlock Grid.Row="1" Grid.Column="0"&gt;Link:&lt;/TextBlock&gt;<br />
   &lt;Label Grid.Row="1" Grid.Column="1" &gt;&lt;/Label&gt;<br />
   &lt;TextBlock Grid.Row="2" Grid.Column="0"&gt;Article&lt;/TextBlock&gt;<br />
   &lt;TextBox Grid.Row="2" Grid.Column="1"&gt;&lt;/TextBox&gt;<br />
&lt;/Grid&gt;</font></p>
        <p>
After adding the <font face="Courier New">Grid</font>, we’ll also have to change the
rest of the markup a little. Take a look at the sample code provided with this article
to see the rest of the layout. 
</p>
        <p>
We now want the detail-fields display more info on the selected item in the <font face="Courier New">Listbox</font>. 
Therefore, the <font face="Courier New">Grid</font> containing these fields should
have its <font face="Courier New">DataContext</font> set to the item selected in the
list. We do this with the following code:
</p>
        <p>
          <font face="Courier New">&lt;Grid DataContext="{Binding ElementName=RSSList, Path=SelectedItem}"
&gt;</font>
          <br />
          <br />
The element is the name of the listbox, the path is once again the property within
the source to which we’ll be binding the grid (and thus the detail fields).
</p>
        <p>
Now, every time we select an item in the listbox, the grid has its datacontext set
to this selected item. The fields can now get details as follows:<br /><br /><font face="Courier New">…<br />
&lt;Label Grid.Row="0" Grid.Column="1" Content="{Binding XPath=title}"&gt;&lt;/Label&gt;<br />
…<br />
&lt;Label Grid.Row="1" Grid.Column="1" Content="{Binding XPath=link}"&gt;<br />
            &lt;/Label&gt;<br />
…<br />
&lt;TextBox Grid.Row="2" Grid.Column="1" Text="{Binding XPath=description}"&gt;&lt;/TextBox&gt;</font></p>
        <p>
The result should resemble the following:<br /></p>
        <p>
          <img src="http://www.snowball.be/content/binary/WPFDatabinding4.jpg" border="0" />
          <br />
          <br />
Congratulations, you built your first databound application, using WPF databinding
and a simple datatemplate!<br /><br />
In my next (large) article, we’ll be looking at the styling tools provided by WPF
to make this application look TONS better!
</p>
        <a href="http://www.snowball.be/content/binary/RSSReader.zip">RSS Reader.zip (45.32
KB)</a>
        <br />
        <br />
        <br />
        <a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx">
          <img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx" border="0" />
        </a>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=6786fc11-d5d3-41e2-982f-cb8b51fe11c1" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF examples: Databinding in WPF: a simple RSS reader with XAML/WPF</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx</guid>
      <link>http://www.snowball.be/2006/07/11/WPF+Examples+Databinding+In+WPF+A+Simple+RSS+Reader+With+XAMLWPF.aspx</link>
      <pubDate>Tue, 11 Jul 2006 13:56:47 GMT</pubDate>
      <description>&lt;p&gt;
WPF not only stands for new fantastic tools for layout. There are also some very interesting
new ways to implement databinding in your applications. 
&lt;br&gt;
In this article, I’m going to show how you can easily build an RSS reader using the
new databinding features in WPF.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How databinding works in WPF&lt;/strong&gt;
&lt;br&gt;
In order not to go too fast, first, let me explain some basic concepts of databinding
in WPF. 
&lt;/p&gt;
&lt;p&gt;
To keep data used in UI in sync with data in the datasource (for example a database),
we can of course use properties. There is nothing wrong if you keep doing this under
WPF. 
&lt;br&gt;
However, WPF provides very handy binding features, that will make your life a lot
easier! 
&lt;/p&gt;
&lt;p&gt;
We could bind the value of a textbox with the following code:&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;TextBox Text="{Binding Path=Age}"&amp;gt;&lt;br&gt;
&amp;lt;/TextBox&amp;gt;&lt;/font&gt;
&lt;br&gt;
Databinding under WPF uses a &lt;font face="Courier New"&gt;Binding&lt;/font&gt; object. The above
code declares a textbox in XAML, and assigns the text-property the value of a property
named Age of an object that it is bound to. This is done using the &lt;font face="Courier New"&gt;Path&lt;/font&gt; property.
The &lt;font face="Courier New"&gt;Path&lt;/font&gt; property refers to the property of the object
we are binding too.
&lt;/p&gt;
&lt;p&gt;
To know to which object we are binding, we have the &lt;font face="Courier New"&gt;DataContext&lt;/font&gt; property.
In WPF, every &lt;font face="Courier New"&gt;FrameworkElement&lt;/font&gt; and also every &lt;font face="Courier New"&gt;FrameworkContentElement&lt;/font&gt; has
a &lt;font face="Courier New"&gt;DataContext&lt;/font&gt; property. It is of type object, so we
can bind to whatever we like. 
&lt;br&gt;
The binding does however have some interesting behaviour: if no &lt;font face="Courier New"&gt;DataContext&lt;/font&gt; is
specified on the object itself (like with our textbox), it goes up the tree in which
the controls are nested. So if we add our textbox in a Grid, it will look if this
Grid has a DataContext. If not, it goes up higher…&lt;br&gt;
This is of course very useful if we have more than one object (say 5 textboxes) binding
to the same object.
&lt;/p&gt;
&lt;p&gt;
Let me show you how to declare an object to which we’ll bind in XAML code (this uses
the new syntax, so to run this, you have to upgrade to beta 2 or higher!)
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Window x:Class="Snowball.Window2"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns="&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x="&lt;/font&gt;&lt;a href="http://schemas.microsoft.com/winfx/2006/xaml"&gt;&lt;font face="Courier New"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:local="clr-namespace:Snowball"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Title="Snowball" Height="300" Width="300"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;Window.Resources&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;local:Person x:Key="Gill" Name="Gill Cleeren" Age="27"/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/Window.Resources&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid DataContext="{StaticResource Gill}"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox Text="{Binding Path=Name}"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TextBox&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br&gt;
&amp;lt;/Window&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
And in the code-behind:&lt;br&gt;
&lt;font face="Courier New"&gt;namespace Snowball&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Person&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string name;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string
Name&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return name;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { name = value;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string age;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string
Age&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return age;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { age = value;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Person()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
What I have done here, is creating a Person object in XAML. For this to work, you
have to provide a default constructor. 
&lt;br&gt;
First, we have to wire the CLR namespace to be known in XAML: &lt;font face="Courier New"&gt;xmlns:local="clr-namespace:Snowball"&lt;/font&gt;. 
&lt;br&gt;
Now, we can use the tag “&lt;font face="Courier New"&gt;local&lt;/font&gt;” to refer to the namespace
in which the Person class resides. 
&lt;br&gt;
Using the following line, we instantiate a Person using XAML:&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;local:Person x:Key="Gill" Name="Gill Cleeren" Age="27"/&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The result is a textbox showing my name:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.snowball.be/content/binary/WPFDatabinding1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Note that if you try this in Visual Studio at the time of writing, you get an error
viewing the design view. Don’t worry, when running, it all works fine.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Binding XML data to a list&lt;/strong&gt;
&lt;br&gt;
Most of the time, we bind data to a list: a dropdown, a grid… In this part, I’m going
to bind an RSS feed from my website &lt;a href="http://www.snowball.be"&gt;www.snowball.be&lt;/a&gt; to
a list. 
&lt;br&gt;
To do this, we’ll need an &lt;font face="Courier New"&gt;XmlDataProvider&lt;/font&gt;. 
&lt;/p&gt;
&lt;p&gt;
Data can be accessed by using a Provider. Currently, 2 providers exist: the &lt;font face="Courier New"&gt;XmlDataProvider&lt;/font&gt; and
the &lt;font face="Courier New"&gt;ObjectDataProvider&lt;/font&gt;. 
&lt;br&gt;
An XmlDataProvider object must be declared within the resources, for example the resources
of the grid:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Grid.Resources&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;XmlDataProvider x:Key="SnowballRSS"
Source="&lt;/font&gt;&lt;a href="http://www.snowball.be/SyndicationService.asmx/GetRss"&gt;&lt;font face="Courier New"&gt;http://www.snowball.be/SyndicationService.asmx/GetRss&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt;"
/&amp;gt;&lt;br&gt;
&amp;lt;/Grid.Resources&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
The &lt;font face="Courier New"&gt;x:Key &lt;/font&gt;assigns a name, which we can use in our
code-behind. 
&lt;/p&gt;
&lt;p&gt;
We can now use this object as a datasource for a listbox, like this:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;ListBox ItemsSource="{Binding Source={StaticResource
SnowballRSS}, XPath=//rss//channel//item }"&amp;gt;&lt;br&gt;
&amp;lt;/ListBox.ItemTemplate&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
We provide a value for the &lt;font face="Courier New"&gt;ItemSource&lt;/font&gt;, being an instance
of Binding. For this &lt;font face="Courier New"&gt;Binding&lt;/font&gt; instance, we provide
the &lt;font face="Courier New"&gt;Source&lt;/font&gt; property. Since we’re dealing with a resource
that is defined in the XAML itself, we again use &lt;font face="Courier New"&gt;StaticResource&lt;/font&gt; and
as value, the name of the dataprovider. A second attribute is the &lt;font face="Courier New"&gt;XPath&lt;/font&gt; expression,
to locate the value we want to show in the listbox. 
&lt;/p&gt;
&lt;p&gt;
This is the result:&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.snowball.be/content/binary/WPFDatabinding2.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
What happens, is that the entire XML tag is being read into a listitem. This is not
desired, so we have to provide some kind of formatting, to tell WPF exactly what we
want to show in the items. 
&lt;br&gt;
This can be accomplished using a datatemplate.
&lt;/p&gt;
&lt;p&gt;
We provide an instance of &lt;font face="Courier New"&gt;DataTemplate&lt;/font&gt; to be used
as value for the &lt;font face="Courier New"&gt;ItemTemplate&lt;/font&gt; property of the listbox.
In this datatemplate, we can specify what to show as listitem. 
&lt;br&gt;
In the following code, I’m telling to make each listitem consist of a &lt;font face="Courier New"&gt;TextBlock&lt;/font&gt;.
The text to be shown is taken from the surrounding Listbox (remember searching for
the data up in the controltree?). In the data it finds, which is an XML tag with subnodes,
we can to take the title as the value for the item. 
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;ListBox.ItemTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;DataTemplate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBlock Text="{Binding XPath=title}"&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/DataTemplate&amp;gt;&lt;br&gt;
&amp;lt;/ListBox.ItemTemplate&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
When we now run this, we get the following:&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.snowball.be/content/binary/WPFDatabinding3.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
Much better, isn’t it?!
&lt;/p&gt;
&lt;p&gt;
In the next part, we’re going to make the application a little bit more complete,
providing a click event for the listbox, and making sure that some fields are filled
in, again using databinding.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Adding the detailsform&lt;/strong&gt;
&lt;br&gt;
We’ll now change the program somewhat to make it display the details of the item selected
in the listbox.
&lt;/p&gt;
&lt;p&gt;
We’ll add a Grid to make it easy to display 3 rows and 2 columns with textblocks,
labels and textboxes. 
&lt;br&gt;
This can be done with the following code:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Grid&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;RowDefinition Height="30"&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;RowDefinition Height="30"&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;RowDefinition Height="*"&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ColumnDefinition Width="0.2*"&amp;gt;&amp;lt;/ColumnDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ColumnDefinition Width="0.8*"&amp;gt;&amp;lt;/ColumnDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBlock Grid.Row="0" Grid.Column="0"&amp;gt;Title&amp;lt;/TextBlock&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Label Grid.Row="0" Grid.Column="1"&amp;gt;&amp;lt;/Label&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBlock Grid.Row="1" Grid.Column="0"&amp;gt;Link:&amp;lt;/TextBlock&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Label Grid.Row="1" Grid.Column="1" &amp;gt;&amp;lt;/Label&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBlock Grid.Row="2" Grid.Column="0"&amp;gt;Article&amp;lt;/TextBlock&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBox Grid.Row="2" Grid.Column="1"&amp;gt;&amp;lt;/TextBox&amp;gt;&lt;br&gt;
&amp;lt;/Grid&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
After adding the &lt;font face="Courier New"&gt;Grid&lt;/font&gt;, we’ll also have to change the
rest of the markup a little. Take a look at the sample code provided with this article
to see the rest of the layout. 
&lt;/p&gt;
&lt;p&gt;
We now want the detail-fields display more info on the selected item in the &lt;font face="Courier New"&gt;Listbox&lt;/font&gt;.&amp;nbsp;
Therefore, the &lt;font face="Courier New"&gt;Grid&lt;/font&gt; containing these fields should
have its &lt;font face="Courier New"&gt;DataContext&lt;/font&gt; set to the item selected in the
list. We do this with the following code:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Grid DataContext="{Binding ElementName=RSSList, Path=SelectedItem}"
&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
The element is the name of the listbox, the path is once again the property within
the source to which we’ll be binding the grid (and thus the detail fields).
&lt;/p&gt;
&lt;p&gt;
Now, every time we select an item in the listbox, the grid has its datacontext set
to this selected item. The fields can now get details as follows:&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;…&lt;br&gt;
&amp;lt;Label Grid.Row="0" Grid.Column="1" Content="{Binding XPath=title}"&amp;gt;&amp;lt;/Label&amp;gt;&lt;br&gt;
…&lt;br&gt;
&amp;lt;Label Grid.Row="1" Grid.Column="1" Content="{Binding XPath=link}"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Label&amp;gt;&lt;br&gt;
…&lt;br&gt;
&amp;lt;TextBox Grid.Row="2" Grid.Column="1" Text="{Binding XPath=description}"&amp;gt;&amp;lt;/TextBox&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
The result should resemble the following:&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.snowball.be/content/binary/WPFDatabinding4.jpg" border=0&gt;
&lt;br&gt;
&lt;br&gt;
Congratulations, you built your first databound application, using WPF databinding
and a simple datatemplate!&lt;br&gt;
&lt;br&gt;
In my next (large) article, we’ll be looking at the styling tools provided by WPF
to make this application look TONS better!
&lt;/p&gt;
&lt;a href="http://www.snowball.be/content/binary/RSSReader.zip"&gt;RSS Reader.zip (45.32
KB)&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.snowball.be/PermaLink,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx" border=0&gt;&lt;/a&gt; &lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=6786fc11-d5d3-41e2-982f-cb8b51fe11c1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,6786fc11-d5d3-41e2-982f-cb8b51fe11c1.aspx</comments>
      <category>.net</category>
      <category>C#</category>
      <category>Microsoft</category>
      <category>Programming</category>
      <category>Vista</category>
      <category>WinFX</category>
      <category>WPF</category>
      <category>XAML</category>
    </item>
    <item>
      <trackback:ping>http://www.snowball.be/Trackback.aspx?guid=4c504758-3ea5-4c16-a4be-ff34c3ebbf45</trackback:ping>
      <pingback:server>http://www.snowball.be/pingback.aspx</pingback:server>
      <pingback:target>http://www.snowball.be/PermaLink,guid,4c504758-3ea5-4c16-a4be-ff34c3ebbf45.aspx</pingback:target>
      <dc:creator>Gill Cleeren</dc:creator>
      <wfw:comment>http://www.snowball.be/CommentView,guid,4c504758-3ea5-4c16-a4be-ff34c3ebbf45.aspx</wfw:comment>
      <wfw:commentRss>http://www.snowball.be/SyndicationService.asmx/GetEntryCommentsRss?guid=4c504758-3ea5-4c16-a4be-ff34c3ebbf45</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Something that got me puzzled today was the Button.Content property. Let me first
explain the WPF Content Model. 
</p>
        <p>
At the very base, we have controls and containers, or as I found somewhere, “bits
of content and behavior” and “containers of bits of content and behavior”. However,
there are 2 special things about the content containment.
</p>
        <p>
For example, a simple button. You do not have to put a string as the content of a
Button. It’s then again not prohibited either, as can be seen in the following code.
</p>
        <p>
          <font face="Courier New">  &lt;Button HorizontalAlignment="Left"<br />
          Width="100"<br />
          Height=”50” &gt;Hello&lt;/Button&gt;</font>
        </p>
        <p>
Now comes the nice part: in WPF, you can use any element as content for a button.
For example, an image. Or to make it all special, why not add video to a button?
</p>
        <p>
          <font face="Courier New">      &lt;Button Width="100" Height="50"&gt;<br />
        &lt;Image Source="</font>
          <font face="Courier New">http://www.google.com/images/logo_sm.gif"&gt;&lt;/Image&gt;</font>
          <font face="Courier New">
            <br />
      &lt;/Button&gt;</font>
        </p>
        <p>
This works, because in the end, everything is derived from ContentControl, just like
many other controls, for example Label, Checkbox and even Window itself. A ContentControl,
like the Button, gets its contents via the Content property. So, the following code
is actually the same as the before-last example.
</p>
        <p>
          <font face="Courier New">      &lt;Button Width="100" Height="50"
Content="Hello"&gt;<br /></font>
          <br />
What you end up with, is a control with the behavior of the actual control, but it
can display whatever you want, without needing to build special derived classes like
an ImageButtonClass. 
</p>
        <p>
          <strong>Content properties</strong>
          <br />
The content properties where today’s problem.
</p>
        <p>
In earlier CTP, you could write :<br />
      <font face="Courier New">&lt;Button Name="MyButton"
&gt;<br />
        &lt;Button.Content&gt;<br />
          …<br />
        &lt;/Button.Content&gt;<br />
      &lt;/Button&gt;</font></p>
        <p>
As soon as I tried this, a syntax error came on my screen, saying that this property
was not allowed. 
<br />
After some searching, I got it working by simply omitting the content-tag, like this.<br /><br /><font face="Courier New">&lt;Button Name="MyButton" &gt; 
<br />
        …<br />
&lt;/Button&gt;</font></p>
        <p>
Now that we can add content to the control, we also need to be able to build them
in a nice layout.  Currently, there are 4 layoutpanels: DockPanel, StackPanel,
Grid and Canvas. 
</p>
        <p>
In the following code, I’m making use of the Grid Panel.
</p>
        <p>
          <font face="Courier New">&lt;Grid&gt;<br />
      &lt;Grid.RowDefinitions&gt;<br />
        &lt;RowDefinition&gt;&lt;/RowDefinition&gt;<br />
        &lt;RowDefinition&gt;&lt;/RowDefinition&gt;<br />
        &lt;RowDefinition&gt;&lt;/RowDefinition&gt;<br />
      &lt;/Grid.RowDefinitions&gt;<br />
      &lt;Grid.ColumnDefinitions&gt;<br />
        &lt;ColumnDefinition&gt;&lt;/ColumnDefinition&gt;<br />
        &lt;ColumnDefinition&gt;&lt;/ColumnDefinition&gt;<br />
        &lt;ColumnDefinition&gt;&lt;/ColumnDefinition&gt;<br />
      &lt;/Grid.ColumnDefinitions&gt;<br />
      &lt;Button Grid.Row="0" Grid.Column="0"&gt;Button1&lt;/Button&gt;<br />
      &lt;Button Grid.Row="0" Grid.Column="1"&gt;Button2&lt;/Button&gt;<br />
      &lt;Button Grid.Row="0" Grid.Column="2"&gt;Button3&lt;/Button&gt;<br />
      &lt;Button Grid.Row="1" Grid.Column="0"&gt;Button4&lt;/Button&gt;<br />
      &lt;Button Grid.Row="1" Grid.Column="1"&gt;Button5&lt;/Button&gt;<br />
      &lt;Button Grid.Row="1" Grid.Column="2"&gt;Button6&lt;/Button&gt;<br />
      &lt;Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"&gt;Button1&lt;/Button&gt;<br />
    &lt;/Grid&gt;</font>
        </p>
        <font face="Courier New">
          <p align="center">
            <br />
            <img src="http://www.snowball.be/content/binary/gridlayout.jpg" border="0" />
          </p>
        </font>
        <p>
And here, I make use of the Grid to make an ImageButton.<br /><br /><font face="Courier New">  &lt;Button Name="MyButton" Margin="97,95.5,95,121.5"
&gt;<br />
    &lt;Grid&gt;<br />
      &lt;Grid.RowDefinitions&gt;<br />
        &lt;RowDefinition&gt;&lt;/RowDefinition&gt;<br />
        &lt;RowDefinition&gt;&lt;/RowDefinition&gt;<br />
      &lt;/Grid.RowDefinitions&gt;<br />
      &lt;Image Source="</font><font face="Courier New">http://www.google.com/images/logo_sm.gif</font><font face="Courier New">"
Grid.Row="0"&gt;&lt;/Image&gt;<br />
      &lt;TextBlock Grid.Row="1" HorizontalAlignment="Center"
&gt;Go to Google&lt;/TextBlock&gt;<br />
    &lt;/Grid&gt;<br />
  &lt;/Button&gt;</font></p>
        <p align="center">
          <font face="Courier New">
            <img src="http://www.snowball.be/content/binary/google.jpg" border="0" />
            <br />
          </font>
        </p>
        <p>
Something else that got me scratching my head today was the following error: Error
in markup file 'Window1.xaml' : Exception has been thrown by the target of an invocation.<br />
I got this error when I write: 
<br /><br />
 <font face="Courier New">&lt;Image Source="coffeebean.bmp" Grid.Row="0"&gt;&lt;/Image&gt;</font></p>
        <p>
One could think that the imagefile is corrupt, or simply not in the correct place…
Well, that for sure isn’t the problem. Still haven’t figured this one out...
</p>
        <p>
That’s about it for today. Hope you, like me, learned your first WPF/XAML steps. At
this point, the examples are still very basic, but that will for sure change!<br /></p>
        <img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=4c504758-3ea5-4c16-a4be-ff34c3ebbf45" />
        <br />
        <hr />
Snowball.be - The blog of Gill Cleeren 
</body>
      <title>WPF adventures: Day 1</title>
      <guid isPermaLink="false">http://www.snowball.be/PermaLink,guid,4c504758-3ea5-4c16-a4be-ff34c3ebbf45.aspx</guid>
      <link>http://www.snowball.be/2006/06/18/WPF+Adventures+Day+1.aspx</link>
      <pubDate>Sun, 18 Jun 2006 11:27:45 GMT</pubDate>
      <description>&lt;p&gt;
Something that got me puzzled today was the Button.Content property. Let me first
explain the WPF Content Model. 
&lt;/p&gt;
&lt;p&gt;
At the very base, we have controls and containers, or as I found somewhere, “bits
of content and behavior” and “containers of bits of content and behavior”. However,
there are 2 special things about the content containment.
&lt;/p&gt;
&lt;p&gt;
For example, a simple button. You do not have to put a string as the content of a
Button. It’s then again not prohibited either, as can be seen in the following code.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; &amp;lt;Button HorizontalAlignment="Left"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width="100"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=”50” &amp;gt;Hello&amp;lt;/Button&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Now comes the nice part: in WPF, you can use any element as content for a button.
For example, an image. Or to make it all special, why not add video to a button?
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Width="100" Height="50"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image Source="&lt;/font&gt;&lt;font face="Courier New"&gt;http://www.google.com/images/logo_sm.gif"&amp;gt;&amp;lt;/Image&amp;gt;&lt;/font&gt;&lt;font face="Courier New"&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Button&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
This works, because in the end, everything is derived from ContentControl, just like
many other controls, for example Label, Checkbox and even Window itself. A ContentControl,
like the Button, gets its contents via the Content property. So, the following code
is actually the same as the before-last example.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Width="100" Height="50"
Content="Hello"&amp;gt;&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
What you end up with, is a control with the behavior of the actual control, but it
can display whatever you want, without needing to build special derived classes like
an ImageButtonClass. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Content properties&lt;/strong&gt;
&lt;br&gt;
The content properties where today’s problem.
&lt;/p&gt;
&lt;p&gt;
In earlier CTP, you could write :&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font face="Courier New"&gt;&amp;lt;Button Name="MyButton"
&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button.Content&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Button.Content&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Button&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
As soon as I tried this, a syntax error came on my screen, saying that this property
was not allowed. 
&lt;br&gt;
After some searching, I got it working by simply omitting the content-tag, like this.&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Button Name="MyButton" &amp;gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;br&gt;
&amp;lt;/Button&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Now that we can add content to the control, we also need to be able to build them
in a nice layout.&amp;nbsp; Currently, there are 4 layoutpanels: DockPanel, StackPanel,
Grid and Canvas. 
&lt;/p&gt;
&lt;p&gt;
In the following code, I’m making use of the Grid Panel.
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Grid&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.ColumnDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.ColumnDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="0" Grid.Column="0"&amp;gt;Button1&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="0" Grid.Column="1"&amp;gt;Button2&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="0" Grid.Column="2"&amp;gt;Button3&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="1" Grid.Column="0"&amp;gt;Button4&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="1" Grid.Column="1"&amp;gt;Button5&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="1" Grid.Column="2"&amp;gt;Button6&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"&amp;gt;Button1&amp;lt;/Button&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font face="Courier New"&gt; 
&lt;p align=center&gt;
&lt;br&gt;
&lt;img src="http://www.snowball.be/content/binary/gridlayout.jpg" border=0&gt;
&lt;/font&gt;&gt;
&lt;p&gt;
And here, I make use of the Grid to make an ImageButton.&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; &amp;lt;Button Name="MyButton" Margin="97,95.5,95,121.5"
&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image Source="&lt;/font&gt;&lt;font face="Courier New"&gt;http://www.google.com/images/logo_sm.gif&lt;/font&gt;&lt;font face="Courier New"&gt;"
Grid.Row="0"&amp;gt;&amp;lt;/Image&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Grid.Row="1" HorizontalAlignment="Center"
&amp;gt;Go to Google&amp;lt;/TextBlock&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/Button&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;font face="Courier New"&gt;&lt;img src="http://www.snowball.be/content/binary/google.jpg" border=0&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Something else that got me scratching my head today was the following error: Error
in markup file 'Window1.xaml' : Exception has been thrown by the target of an invocation.&lt;br&gt;
I got this error when I write: 
&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;font face="Courier New"&gt;&amp;lt;Image Source="coffeebean.bmp" Grid.Row="0"&amp;gt;&amp;lt;/Image&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
One could think that the imagefile is corrupt, or simply not in the correct place…
Well, that for sure isn’t the problem. Still haven’t figured this one out...
&lt;/p&gt;
&lt;p&gt;
That’s about it for today. Hope you, like me, learned your first WPF/XAML steps. At
this point, the examples are still very basic, but that will for sure change!&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.snowball.be/aggbug.ashx?id=4c504758-3ea5-4c16-a4be-ff34c3ebbf45" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Snowball.be - The blog of Gill Cleeren </description>
      <comments>http://www.snowball.be/CommentView,guid,4c504758-3ea5-4c16-a4be-ff34c3ebbf45.aspx</comments>
      <category>WPF</category>
      <category>XAML</category>
    </item>
  </channel>
</rss>