<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The MossyBlog Times Archives 2007 - 2009 : Design</title><link>http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx</link><description>Tags: Design</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>User Experience – The Kettle.</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/09/30/user-experience-the-kettle.aspx</link><pubDate>Tue, 29 Sep 2009 22:55:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9900965</guid><dc:creator>scbarnes</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9900965.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9900965</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9900965</wfw:comment><description>&amp;#160; How many kettles have you owned over the years? is it more than one? has it always been the same one? It’s a pretty straight forward device, you fill it up with water, it heats up and then you tip the contents out into a container. Why then are...(&lt;a href="http://blogs.msdn.com/msmossyblog/archive/2009/09/30/user-experience-the-kettle.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9900965" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/User+Experience/default.aspx">User Experience</category></item><item><title>Apple stole my whitespace.</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/09/10/apple-stole-my-whitespace.aspx</link><pubDate>Thu, 10 Sep 2009 02:07:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9893373</guid><dc:creator>scbarnes</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9893373.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9893373</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9893373</wfw:comment><description>&lt;p&gt;I often meet up with a co-worker (Michael Bach, Product Manger &amp;amp; Designer for &lt;a href="http://www.microsoft.com/web" target="_blank"&gt;Microsoft.com/Web&lt;/a&gt;) and we talk all things design. As it for us is therapy given we are constantly surrounded by engineers within Microsoft :)&lt;/p&gt;  &lt;p&gt;One insight Michael came up with the other night is that Apple own white. It got me thinking and the more we looked at how other sites are designed, the more we both agreed that in the end its very hard today to come up with a site design that uses a big picture and is done in white without someone saying “dude, that’s so apple”.&lt;/p&gt;  &lt;p&gt;I’ve done some design mockups for microsoft.com/silverlight that i want to pitch to the team, but am very annoyed as the more i look at them the more i can see them being labeled “that’s so apple”.&lt;/p&gt;  &lt;p&gt;Another insight is that we noticed these days a lot of the brightest and best website designs seem to evolve around a central image, in that photography is playing a vital role in the way sites are designed.&lt;/p&gt;  &lt;p&gt;A big vibrant picture can actually hide a lot of “meh” in a design.&lt;/p&gt;  &lt;p&gt;Example:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://sethsaid.com/" href="http://sethsaid.com/"&gt;http://sethsaid.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With a big vibrant image, i found my initial reaction to this site to be well designed.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Applestolemywhitespace_E283/image_3.png" width="430" height="396" /&gt; &lt;/p&gt;  &lt;p&gt;Now without.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Applestolemywhitespace_E283/image_6.png" width="430" height="396" /&gt; &lt;/p&gt;  &lt;p&gt;It just seems flat? and very monochrome. You can find more at (&lt;a title="Web Creme Web design inspiration" href="http://www.webcreme.com/"&gt;Web Creme Web design inspiration&lt;/a&gt;) and have a look at BIG Image vs SMALL Image.&lt;/p&gt;  &lt;p&gt;Now lets take a throw-away design I was tinkering with for Microsoft.com/Silverlight.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Applestolemywhitespace_E283/image_11.png" width="430" height="322" /&gt; &lt;/p&gt;  &lt;p&gt;The design is ok, but the image for me lacks life in that without the image, the design would look very basic.&lt;/p&gt;  &lt;p&gt;Now lets see what happens if I add some other elements that i got from another site (as it struck me as a great concept to &lt;a href="http://en.wikipedia.org/wiki/Mood_board" target="_blank"&gt;mood-board&lt;/a&gt; together from).&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Applestolemywhitespace_E283/image_14.png" width="430" height="322" /&gt; &lt;/p&gt;  &lt;p&gt;The two look completely different imho, and it sort of brings new energy levels to the design – even though its a very very basic design in the first place.&lt;/p&gt;  &lt;p&gt;Damn you Apple, damn you and your white space designs.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Applestolemywhitespace_E283/image_17.png" width="439" height="404" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Scott Out.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893373" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Function, Form, Fashion – Shanemo.</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/06/11/function-form-fashion-shanemo.aspx</link><pubDate>Thu, 11 Jun 2009 06:56:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9725706</guid><dc:creator>scbarnes</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9725706.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9725706</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9725706</wfw:comment><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/FunctionFormFashionShanemo_1265E/image_3.png" width="430" height="228" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/shanemo/archive/2009/04/25/my-slides-from-aimia-customer-experience-session.aspx#comments"&gt;Shane Morris&lt;/a&gt;, who for the few left that don’t know is one of our &lt;strong&gt;User Experience Evangelists&lt;/strong&gt; in Australia. Shane’s actually got a deep background in Usability and is a lot of his fingerprints on our upcoming release of Expression Blend – Sketchflow.&lt;/p&gt;  &lt;p&gt;He seems to have recently done a presentation on “&lt;strong&gt;Function&lt;/strong&gt;, &lt;strong&gt;Form&lt;/strong&gt; and &lt;strong&gt;Fashion”.&lt;/strong&gt; Although it’s only in slide deck format, I’m damn curious to see the vocals behind this interesting discussion.&lt;/p&gt;  &lt;p&gt;Check out the deck for yourself via &lt;a href="http://blogs.msdn.com/shanemo/archive/2009/04/25/my-slides-from-aimia-customer-experience-session.aspx#comments"&gt;Shane’s blog&lt;/a&gt;.&lt;/p&gt;  &lt;div style="text-align: left; width: 425px" id="__ss_1340060"&gt;&lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="Customer Experience and the 3 F&amp;#39;s" href="http://www.slideshare.net/shanemo/customer-experience-and-the-3-fs?type=powerpoint"&gt;Customer Experience and the 3 F's&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=morrisaimiacustomerexperience-forslideshare-090424233819-phpapp01&amp;amp;stripped_title=customer-experience-and-the-3-fs" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=morrisaimiacustomerexperience-forslideshare-090424233819-phpapp01&amp;amp;stripped_title=customer-experience-and-the-3-fs" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;OpenOffice presentations&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/shanemo"&gt;Shane Morris&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I promise when I’m home in Australia to get Shane on camera at some point, to get his thoughts on more around Design + Microsoft in general. Shane has taught me a lot about design and I often think he’s got way more to offer us than his role provides time for.&lt;/p&gt;  &lt;p&gt;Definitely get face time with him if you are in Australia (especially at &lt;a href="http://www.microsoft.com/australia/remix/default.aspx"&gt;ReMIX AU&lt;/a&gt;) and make sure you watch his &lt;a href="http://blogs.msdn.com/shanemo/archive/2009/04/25/my-slides-from-aimia-customer-experience-session.aspx#comments"&gt;blog closely&lt;/a&gt;. He’s got the gift and definitely gets design – better than I do that’s for sure.&lt;/p&gt;  &lt;p&gt;Add this to your RSS Readers: &lt;a href="http://blogs.msdn.com/shanemo/"&gt;http://blogs.msdn.com/shanemo/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9725706" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Design First, Engineer Second.</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/06/09/design-first-engineer-second.aspx</link><pubDate>Tue, 09 Jun 2009 06:38:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9712570</guid><dc:creator>scbarnes</dc:creator><slash:comments>19</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9712570.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9712570</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9712570</wfw:comment><description>&lt;p&gt;A lot of the time folks write off Apple customers as simply being &lt;a href="http://www.urbandictionary.com/define.php?term=mactard"&gt;MacTards&lt;/a&gt;, fans that are so pre-occupied with Apple and less about the products they make. In part that can be true, I’ve meet some extreme ignorant fans, but in general that’s not true at all.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/DesignFirstEngineerSecond_1221E/image_3.png" width="430" height="245" /&gt; &lt;/p&gt;  &lt;p&gt;I’ve meet a lot of fans of Apple who can’t stand the company, but embrace the products they design. I’ve asked many creative souls who in Apple they worship the most, Steve Jobs isn’t on the list as much as &lt;a href="http://www.bing.com/search?q=Jonathan+Ive&amp;amp;go=&amp;amp;form=QBLH"&gt;Jonathan Ive&lt;/a&gt; is.&amp;#160; It’s interesting to note this, as competition isn’t important as much as &lt;strong&gt;why&lt;/strong&gt; folks CHOOSE to compete. I’m a fan of Jonathan’s work, as what i’ve read about him is that he seems preoccupied with design first, competition / politics last – seems healthy in a positive way?&lt;/p&gt;  &lt;p&gt;Industrial Design is fast becoming the differentiator in today’s technology markets; it’s not just about the magic of software it’s also about how the software experience is presented outside the binary owned domain. Everything from the packaging through to the device it’s housed in all play a collective role. Short change one component to this formula, the rest can suffer.&lt;/p&gt;  &lt;p&gt;&lt;img alt="first generation iPod" src="http://upload.wikimedia.org/wikipedia/en/thumb/3/35/Ipod_1G.png/45px-Ipod_1G.png" /&gt;&amp;#160;&lt;img alt="A second generation iPod (2002)" src="http://upload.wikimedia.org/wikipedia/en/thumb/5/5e/Ipod_2G.png/45px-Ipod_2G.png" /&gt;&lt;img alt="third generation iPod" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Ipod_backlight_transparent.png/45px-Ipod_backlight_transparent.png" /&gt;&lt;img alt="first generation iPod Touch" src="http://upload.wikimedia.org/wikipedia/en/thumb/a/ab/1st_gen_ipod_touch.jpg/45px-1st_gen_ipod_touch.jpg" /&gt;&lt;img alt="second generation iPod Touch" src="http://upload.wikimedia.org/wikipedia/en/thumb/6/6d/IPod_Touch_2.0.png/45px-IPod_Touch_2.0.png" /&gt;&lt;/p&gt;  &lt;p&gt;It’s not easy either, if you look at the first generation of iPods compared to today’s iPhone, there is a radical change in not just ergonomics but visual design inside the software. Evolution is something that you have to fight your way through when it comes to products, it’s not about V1 or V2, but often V3 can be your sweet spot. I like to call this the “Goldie Locks” effect in that as a child I was told the story of “Goldie Locks &amp;amp; the Three Bears”. Basically by her 3&lt;sup&gt;rd&lt;/sup&gt; attempt at eating the porridge, it was “just right”. Its amazing how often this formula seems to happen not just in Microsoft but all brands really.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/DesignFirstEngineerSecond_1221E/image_6.png" width="430" height="174" /&gt; &lt;/p&gt;  &lt;p&gt;I look at the Zune from where it’s come to where it’s heading and I’m at peace with it. I feel our Zune team get design, the shame here is it’s not available outside the U.S (something I hope will change).&lt;/p&gt;  &lt;p&gt;I look at the &lt;a href="http://www.xbox.com/en-US/live/projectnatal/"&gt;XBOX Team and Project NATAL&lt;/a&gt; and it again, I’m at peace with it all as they are looking to focus on the experience and less on the technology per say – games are funny incubation of innovation at times.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/DesignFirstEngineerSecond_1221E/image_9.png" width="430" height="136" /&gt; &lt;/p&gt;  &lt;p&gt;I look at the next version of Office and am amazed at how clean it’s fast becoming.&amp;#160; Same with Windows 7.&lt;/p&gt;  &lt;p&gt;The point is this; we have become used to judging “new” from how it looks not so much how it acts. If we see a new product come out that’s based off the old, it’s main focus is on how it looks and less what it does new – that comes later and is of equal importance.&lt;/p&gt;  &lt;p&gt;We do judge a book by its cover, and as such we really need to tackle the design first and focus on engineering second. If you target where you want to head and then focus on how you get there, at least your goal is more weighted towards innovation and less on limitation.&lt;/p&gt;  &lt;p&gt;I think Apple has taught Microsoft a valuable lesson in the past 3 years; it’s a healthy amount of competition as well. Adobe is also teaching Microsoft valuable lessons as well.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/DesignFirstEngineerSecond_1221E/image_12.png" width="439" height="110" /&gt; &lt;/p&gt;  &lt;p&gt;We are a company that has had a lot of engineering culture ingrained into our DNA – yet in the past 3-4 years I’ve seen the design discussion change from being this quiet blip on the radar to being a more focal point in discussion.&lt;/p&gt;  &lt;p&gt;I’m not a fan of the the new Bing logo, it just irritates me at how the proportion is off, yet I’ve seen a healthy debate internally on the subject that has made me extremely proud of how Microsoft is changing its approach to design. I’m not happy with the outcome, but will happily accept this given the result was we approached a conversation differently to what I would of ever thought years ago. In the end I concede that Bing will be measured by how well it helps folks search not so much on what the brand looks like.&lt;/p&gt;  &lt;p&gt;Engineering only gives you so much of a head start, as it can usually be matched, design however is something that if you copy becomes obvious as well the initial moment had already passed. &lt;/p&gt;  &lt;p&gt;Design can interrupt you in a positive way. Its downside is that it’s not open to “rinse &amp;amp; repeat” formulas.&lt;/p&gt;  &lt;p&gt;It’s better outlined here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://seedmagazine.com/content/article/a_new_map_for_design/" href="http://seedmagazine.com/content/article/a_new_map_for_design/"&gt;http://seedmagazine.com/content/article/a_new_map_for_design/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9712570" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Engineer and Designer walk into a bar..</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/03/24/engineer-and-designer-walk-into-a-bar.aspx</link><pubDate>Tue, 24 Mar 2009 10:47:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9503640</guid><dc:creator>scbarnes</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9503640.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9503640</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9503640</wfw:comment><description>&lt;p&gt;An Engineer and a Designer walks into a bar, and notices a picture hanging on the wall. It’s a picture of a dog screwing in a light bulb. The engineer turns to the designer and says “that’s just not possible, the dog hasn’t got opposable thumbs..” the designer turns and says “I disagree, he has, see…”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://stopdesign.com/archive/2009/03/20/goodbye-google.html"&gt;http://stopdesign.com/archive/2009/03/20/goodbye-google.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enough said.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9503640" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>I hate it when a designer touches XAML..</title><link>http://blogs.msdn.com/msmossyblog/archive/2009/01/25/i-hate-it-when-a-designer-touches-xaml.aspx</link><pubDate>Sun, 25 Jan 2009 10:42:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9374712</guid><dc:creator>scbarnes</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/9374712.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=9374712</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=9374712</wfw:comment><description>&lt;p&gt;I’ve meet with a few die-hard Silverlight developers in my time and some feedback I get at times is how designers produce bad XAML.&lt;/p&gt;  &lt;p&gt;“..I hate it when a designer touches XAML..” – oh? why?&lt;/p&gt;  &lt;p&gt;My first thought was, “bad XAML?” how on earth can a designer produce bad XAML. *confused look*&lt;/p&gt;  &lt;p&gt;After digging I find out that one of the pet hates is that the designer doesn’t name their controls properly or that they’ll use a rectangle instead of a grid/canvas etc to visually represent the UI.&lt;/p&gt;  &lt;p&gt;I then hold up my hand and say “stop”.&lt;/p&gt;  &lt;p&gt;Here’s the lesson folks. &lt;/p&gt;  &lt;p&gt;Expression Studio and Visual Studio allow you to collaborate with designers and developers. We’ve made it so you majority of the time never need to look at how the tools generate XAML as it just works. That all being said, it ENABLES you to work together, you still need to WORK together.&lt;/p&gt;  &lt;p&gt;Meaning, setup rules of engagement with one another. Tell your designer that you need certain User Controls for certain contexts. You expect a clear naming convention and so on. Let the designer execute their creative vision and don’t impose too many rules on them as you could starve the process of creative flow but agree on how the pipeline will work UPFRONT.&lt;/p&gt;  &lt;p&gt;Don’t expect the tools to automate your communication between developer and designer, as to do that would be a one neat trick.&lt;/p&gt;  &lt;p&gt;Word for today: &lt;strong&gt;&lt;u&gt;Communication.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9374712" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Studio/default.aspx">Expression Studio</category></item><item><title>How to: Make Innerglows with Expression Blend.</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/09/15/how-to-make-innerglows-with-expression-blend.aspx</link><pubDate>Sun, 14 Sep 2008 22:25:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8951848</guid><dc:creator>scbarnes</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8951848.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8951848</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8951848</wfw:comment><description>&lt;p&gt;I'm knee deep in a WPF project i'm writing for my team. I had the need today to have an innerglow, and noticed that we seem to have forgotten this little BitmapEffect of goodness (which I'll be promptly hassling Jon tomorrow for in the next revision).&lt;/p&gt;  &lt;p&gt;That being said, as stubborn as I am I decided to try my hand at producing my own InnerGlow effect. It was actually very simple procedure to replicate inside Expression Blend.&lt;/p&gt;  &lt;h1&gt;Step 1.&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_24.png" width="166" align="left" border="0" /&gt; Define your shape. In this case I went with a rounded Rectangle, but you can use any shape you see fit and firstly you need to figure out your base shape.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Note:       &lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;Now it's important here to note, that you need to think of this as being &amp;quot;Pancakes&amp;quot; in terms of the design composition.&lt;/p&gt;  &lt;p&gt;Don't worry to much about pixel perfect precision inside Vector either.&amp;#160; A illustrator friend of mine once gave me a basic rule to live with when it comes to Vector art:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;You can hide a lot of imperfections, as given you can zoom endlessly you get to the point were the naked eye can't see it and move on..&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Couldn't agree more.&lt;/p&gt;  &lt;h1&gt;Step 2.&lt;/h1&gt;  &lt;p&gt;Simply copy the shape (CTRL+C) and hit Paste keys (CTRL+V). It should paste exactly on top of the previous shape and retain the exact x/y co-ordinates.&lt;/p&gt;  &lt;p&gt;Rename your layer to something suites you, I myself called it &lt;strong&gt;IcnInnerGlow&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="121" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_16.png" width="273" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Step 3.&lt;/h1&gt;  &lt;p&gt;Selecting the layer you just copied, you now want to add a BitmapEffect called &amp;quot;Outerglow&amp;quot;. This can be found via your Properties area, under the group called &lt;strong&gt;Appearance. &lt;/strong&gt;You will need to click on the expander for this group in order to see the below.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="121" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_19.png" width="305" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_21.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_thumb_7.png" width="305" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You should see something like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_27.png" width="166" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Not really inspiring is it? &lt;/p&gt;  &lt;h1&gt;Step 4.&lt;/h1&gt;  &lt;p&gt;You now need to knockout the &lt;strong&gt;Fill&lt;/strong&gt; and bump up the Border. So in this case, go to your &lt;strong&gt;Fill&lt;/strong&gt; and click on the &lt;strong&gt;No Brush&lt;/strong&gt; Tab.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_30.png" width="305" border="0" /&gt; &lt;/p&gt;  &lt;p&gt; You will also need to ensure the Border's Brush is set to a color or setting that you feel comfortable with. In this case, I chose a solid color and ensured the Opacity was 53%.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_33.png" width="305" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The results should now look like this.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_36.png" width="166" border="0" /&gt; &lt;/p&gt;  &lt;h1&gt;Step 5&lt;/h1&gt;  &lt;p&gt;Now comes the real magic. You select your layer, and again hit CTRL+C and CTRL+V (duplicating your layer basically).&lt;/p&gt;  &lt;p&gt;With this new layer (it should increase the glow effect, make a note of that!) you now want to make this a clipping path. In that everything inside this shape is what you only want to make visible. The rest is something we want to discard.&lt;/p&gt;  &lt;p&gt;To do this, right-click on the newly duplicated layer, Choose Path, then Make Clipping Path.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_39.png" width="379" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;A new Modal window will now appear, asking which path you want to attach this clipping path to (think masking in Flash). Choose your &amp;quot;InnerGlow&amp;quot; shape, and you should now have the following result:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_42.png" width="166" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Notice no bleeding beyond the shape's actual borders? Now you have a uniform InnerGlow that matches your shape. It's now up to you what you want to do from here on out, but overall this is a quick and fairly friction free way of achieving an InnerGlow using the basic BitmapEffects in place.&lt;/p&gt;  &lt;p&gt;I personally, adjusted the color to white, added another BitmapEffect (Blur) and tweaked the settings in a way that I ended up with the following visual effect.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_45.png" width="166" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Doesn't look like much does it? well keep in mind I'm Zoomed In here, when I zoom back out to 100%, this is the visual look I pulled off.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="128" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/HowtoMakeInnerglowswithExpressionBlend_AD63/image_48.png" width="150" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Now to add some Gloss to the buttons..as we all know, there isn't enough &amp;quot;Gloss&amp;quot; online today :)&lt;/p&gt;  &lt;h1&gt;Summary.&lt;/h1&gt;  &lt;p&gt;Expression Blend isn't meant to be a Adobe Photoshop replacement, it's meant to essentially act as a bridge between the Designer Tools and Developer Tools. That being said, it has a fair amount of hidden power under the hood (when dealing with WPF). I've found that I can achieve a lot of the visual effects I've commonly used in Photoshop via Expression Blend (yes its weird I know). It requires more hand-crafting but overall visually once I've put it into place, I can re-use across a lot of controls throughout my WPF application.&lt;/p&gt;  &lt;p&gt;I think at times the Vector UI's look absolutely crap and its dying of gradient brush overkill, so I'm hoping to show folks a few tricks here and there to produce visually appealing art.&lt;/p&gt;  &lt;p&gt;Here's the best part of all. If you like the above, then cut and paste this XAML code into your application, and you're off to the races.&lt;/p&gt;  &lt;p&gt;Yet another upside to using XAML, sharing art is as easy as pasting XML.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 430px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb"&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Stroke&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#87757575&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeDashCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Square&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeEndLineCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Flat&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeLineJoin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Miter&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeThickness&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusX&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusY&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;icnBase&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;2,2,2,0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Grid&lt;/span&gt;.&lt;span style="color: #ff0000"&gt;Column&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Grid&lt;/span&gt;.&lt;span style="color: #ff0000"&gt;ColumnSpan&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DropShadowBitmapEffect&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Opacity&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.835&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ShadowDepth&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Softness&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.305&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;LinearGradientBrush&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StartPoint&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.538462,0.98077&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;EndPoint&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.538462,-0.576924&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        				&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;GradientStop&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Color&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#FF232323&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Offset&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        				&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;GradientStop&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Color&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#FF5D5B5B&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Offset&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Stroke&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#87757575&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeDashCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Square&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeEndLineCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Flat&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeLineJoin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Miter&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeThickness&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusX&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusY&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;icnBase_Copy&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;2,2,2,0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Fill&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;{x:Null}&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Clip&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;M0.25,3.25 C0.25,1.5931458 1.5931458,0.25 3.25,0.25 L28.75,0.25 C30.406854,0.25 31.75,1.5931458 31.75,3.25 L31.75,28.75 C31.75,30.406854 30.406854,31.75 28.75,31.75 L3.25,31.75 C1.5931458,31.75 0.25,30.406854 0.25,28.75 z&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;d&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;IsHidden&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;OuterGlowBitmapEffect&lt;/span&gt; &lt;span style="color: #ff0000"&gt;GlowSize&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;GlowColor&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#FFF9F9F9&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Opacity&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.415&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Stroke&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#87757575&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeDashCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Square&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeEndLineCap&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Flat&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeLineJoin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Miter&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StrokeThickness&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusX&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RadiusY&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;icnBase_Copy1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;2,2,2,0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;32&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Fill&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;{x:Null}&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Clip&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;M0.25,3.25 C0.25,1.5931458 1.5931458,0.25 3.25,0.25 L28.75,0.25 C30.406854,0.25 31.75,1.5931458 31.75,3.25 L31.75,28.75 C31.75,30.406854 30.406854,31.75 28.75,31.75 L3.25,31.75 C1.5931458,31.75 0.25,30.406854 0.25,28.75 z&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;BitmapEffectGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        				
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffff00"&gt;										&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;OuterGlowBitmapEffect&lt;/span&gt; &lt;span style="color: #ff0000"&gt;GlowSize&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;GlowColor&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;#FFF9F9F9&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Opacity&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        				
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        			&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;BitmapEffectGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                        		&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle.BitmapEffect&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;                        	&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Rectangle&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8951848" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Blend/default.aspx">Expression Blend</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/XAML/default.aspx">XAML</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Studio/default.aspx">Expression Studio</category></item><item><title>Silverlight: VisualState Manager, Storyboards and why designers should care about them both.</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/06/30/understanding-how-visualstate-manager-s-durations-work-in-silverlight-expression-blend.aspx</link><pubDate>Mon, 30 Jun 2008 09:50:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8665257</guid><dc:creator>scbarnes</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8665257.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8665257</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8665257</wfw:comment><description>&lt;p&gt;I've seen a lot of talk around VisualState Manager online and it mostly covers button states and so on. What I want to do here in this post is illustrate why VisualState Manager is a handy tool for the average interactive designer out there and how it can kind of short-cut a lot of animation transition logic automatically for you.&lt;/p&gt;  &lt;h1&gt;You can make your own States.&lt;/h1&gt;  &lt;p&gt;In &lt;a href="http://www.silverlight.net/" target="_blank" mce_href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; via &lt;a href="http://www.microsoft.com/expression" target="_blank" mce_href="http://www.microsoft.com/expression"&gt;Expression Blend&lt;/a&gt; you will have the ability to make your own &lt;em&gt;VisualStates&lt;/em&gt;. In my case I have a Menu that when a button is clicked it fly's down. Once clicked again, it fly's back up.&lt;/p&gt;  &lt;p&gt;First things first, I setup a basic wire-frame UI (always prototype people!) in which I have an outer-chrome and underneath it, I have a &lt;font color="#008040"&gt;&lt;strong&gt;Green&lt;/strong&gt;&lt;/font&gt; rectangle which represents the &amp;quot;menu&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Closed:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="111" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb.png" width="450" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Opened:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="97" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_2.png" width="450" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That's the intent anyway. &lt;/p&gt;  &lt;p&gt;Inside Expression Blend, on the Far left you should see this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="181" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_3.png" width="260" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_3.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is the area where you can add your own VisualStates. In this case, if you click on the &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="25" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_13.png" width="35" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_13.png" /&gt; icon, you will get &amp;quot;&lt;font color="#0000ff"&gt;Add State Group&lt;/font&gt;&amp;quot;, which should automatically add a &lt;strong&gt;StateGroup&lt;/strong&gt; for you.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;New StateGroup added.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="159" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_18.png" width="247" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_18.png" /&gt; &lt;/p&gt;  &lt;p&gt;Now, notice the 0s next to the &lt;strong&gt;&lt;em&gt;StateGroup&lt;/em&gt;&lt;/strong&gt; Label (You can change the Label if you want by the way to suite a more appealing name). The 0s input is essentially the total duration of time it will take to go between each state housed within this group. It's currently at 0s which means that there will be no animated transition between states. To enable an animation between states, bump this up to more than 0, (0.5seconds will be great starting point, as anything lower and it's hard to visually gauge the transition).&lt;/p&gt;  &lt;p&gt;At this point, go ahead and Add two States via the &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="22" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_21.png" width="26" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_21.png" /&gt; menu (+ meaning add, - meaning remove).&lt;/p&gt;  &lt;p&gt;You should end up with the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_25.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_25.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="156" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_10.png" width="260" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_10.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h1&gt;Setting up the States.&lt;/h1&gt;  &lt;p&gt;At this point, go ahead and rename the State and State1 to &lt;strong&gt;PullDown&lt;/strong&gt; and &lt;strong&gt;PullUp&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="127" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_28.png" width="260" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_28.png" /&gt; &lt;/p&gt;  &lt;p&gt;Click on &lt;strong&gt;PullDown's&lt;/strong&gt; state. &lt;/p&gt;  &lt;p&gt;If you are familiar with the way StoryBoards work inside Expression Blend, then you will notice that the timelines per state can exist (by default they aren't added until you add them via clicking on the &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="22" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightVisualStateManagerStoryboard_FAC5/image_3.png" width="32" border="0" /&gt;&amp;#160; icon). This is called &amp;quot;in-state animation&amp;quot;.&lt;/p&gt;  &lt;p&gt;This is quite a powerful, as basically we've provided you the ability to add your own amount of animation per state. In this case, I've made my Green Rectangle fly down from 0y to 130y within the PullDown in-state animation.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_30.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_30.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="389" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_12.png" width="450" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_12.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_34.png" mce_href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_34.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="407" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_14.png" width="450" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_thumb_14.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I've made the duration for the animation around 2seconds which in this case means that although my animation for that state is expected to run for 2 seconds it won't (well not quite like that)&lt;/p&gt;  &lt;p&gt;Why won't it?&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="72" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_37.png" width="450" border="0" mce_src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/UnderstandinghowVisualStateManagersDura_F46C/image_37.png" /&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;0.5s&lt;/strong&gt; here will add to the overall actual animation. As the way VisualStateManager works is that it will take 0.5s to go from PullUp state to PullDown state. Once the transition has completed, it will then play the 2second animation.&lt;/p&gt;  &lt;p&gt;In total, your entire transition will take 2.5 seconds. Important thing to note here, is that should you want it to take 2seconds you just make the actual StateGroup (NxsRibbonMenuState) 0s.&lt;/p&gt;  &lt;p&gt;The reason I would opt for a 0s Duration is that this allows you to attach your own easing (in/out) sequence per state, whilst allowing you to have a multi-step animation (meaning the animation can play different effects per tick on the Timeline). &lt;/p&gt;  &lt;p&gt;This could also be done simply using a basic Storyboarding approach, but you don't get the flexibility of accessing the VisualStateManager via code-behind and you also have to write your own reverse routines should the user wish to interrupt the sequence of animation.&lt;/p&gt;  &lt;h1&gt;Why use States for Animations then?&lt;/h1&gt;  &lt;p&gt;In my case I wanted to enable a Menu to come down and up when the user clicks on a button. I also want it to also allow the user to change their minds and reverse the animation should they click the button half way.&lt;/p&gt;  &lt;p&gt;VisualState Manager's can provide a great way to achieve this, as in my Button's Click handler, I simply tell it which state to go to and the rest automatically takes care of itself.&lt;/p&gt;  &lt;p&gt;What does that mean though? say you've clicked on PullDown and the animation of PullDown state is half-way through (meaning 1sec into the animation). If you then trigger the state change to PullUp, VisualStateManager will automatically figure out how to transition all properties adjusted whilst in PullDown State back to PullUp state, automatically.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Note: When I say automatically (it's half true) what really happens is that Blend will create some storyboards within the VisualState tags. This is done at design-time but at run-time it essentially is automated in terms of figuring out how to go from AS-IS to a TO-BE.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pretty powerful yes?&lt;/p&gt;  &lt;p&gt;Here's some code to illustrate how you switch between states.&lt;/p&gt;  &lt;div class="csharpcode" style="overflow: auto; width: 430px"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; NxsRibbon : UserControl &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{ &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; NxsRibbon() &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    { &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        InitializeComponent(); &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        CURRENT_STATE = &lt;span class="str"&gt;&amp;quot;PullDown&amp;quot;&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        VisualStateManager.GoToState(&lt;span class="kwrd"&gt;this&lt;/span&gt;, CURRENT_STATE, &lt;span class="kwrd"&gt;true&lt;/span&gt;); &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;this&lt;/span&gt;.btnTest.Click += &lt;span class="kwrd"&gt;new&lt;/span&gt; RoutedEventHandler(onButtonTestClick); &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; CURRENT_STATE; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;void&lt;/span&gt; onButtonTestClick(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e) { &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;switch&lt;/span&gt; (CURRENT_STATE) &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        { &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;PullDown&amp;quot;&lt;/span&gt;: &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                CURRENT_STATE = &lt;span class="str"&gt;&amp;quot;PullUp&amp;quot;&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;default&lt;/span&gt;: &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                CURRENT_STATE = &lt;span class="str"&gt;&amp;quot;PullDown&amp;quot;&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                &lt;span class="kwrd"&gt;break&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        VisualStateManager.GoToState(&lt;span class="kwrd"&gt;this&lt;/span&gt;, CURRENT_STATE, &lt;span class="kwrd"&gt;true&lt;/span&gt;); &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager(VS.95).aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager(VS.95).aspx"&gt;VisualState Manager&lt;/a&gt; is quite a powerful feature within Silverlight and Expression Blend. You just have to treat it with care, and keep your eye on the durations as the StateGroup will always win the fight.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8665257" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Blend/default.aspx">Expression Blend</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/RIA+Handbook/default.aspx">RIA Handbook</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Animation/default.aspx">Animation</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Silverlight Experiment: Create a PullDown Menu using Storyboards.</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/06/29/silverlight-experiment-create-a-pulldown-menu-using-storyboards.aspx</link><pubDate>Sun, 29 Jun 2008 07:09:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8666034</guid><dc:creator>scbarnes</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8666034.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8666034</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8666034</wfw:comment><description>&lt;p&gt;This is a basic example of how to create a &amp;quot;PullDown Menu&amp;quot; using Silverlight and Expression Blend.&lt;/p&gt;  &lt;h1&gt;The Objectives&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;The GUI will have a PullDown Menu (UserControl) under the main outer chrome. It's intended that when a user clicks on the &amp;quot;MainMenu&amp;quot; it will not only change state, but animate down or up (depending on the previous state it was resting in - default being Up). &lt;/li&gt;    &lt;li&gt;The End User will need to have the ability to interrupt the animation should they decide to cancel the action, as a result the menu will react to the End User's intended action and reflect the direction change as well as state change. &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;The Expected Outcome.&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="326" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb.png" width="434" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="326" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb_1.png" width="434" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h1&gt;The Blueprints.&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="312" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb_3.png" width="444" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1x &lt;strong&gt;OuterChrome&lt;/strong&gt; Control       &lt;ul&gt;       &lt;li&gt;1x TopLeft Corner Bitmap (Static) &lt;/li&gt;        &lt;li&gt;1x Top Bitmap (Stretch Horizontally) &lt;/li&gt;        &lt;li&gt;1x Left Bitmap (Stretch Vertically) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;1x &lt;strong&gt;PullDownMenu&lt;/strong&gt; Container       &lt;ul&gt;       &lt;li&gt;1x InnerMenu Control (NxsRibbon) &lt;/li&gt;        &lt;li&gt;1x LowerBar Bitmap (Static) &lt;/li&gt;        &lt;li&gt;1x PullDown Tab Bitmap (Static) &lt;/li&gt;        &lt;li&gt;1x PullUp Tab Bitmap (static) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;The Process&lt;/h1&gt;  &lt;ol type="1"&gt;   &lt;li&gt;Create the the WireFrames.      &lt;ol type="A"&gt;       &lt;li&gt;Create a &lt;font color="#008080"&gt;UserControl&lt;/font&gt; in Blend, call it &lt;strong&gt;NxsApplication.xam&lt;/strong&gt;l (this will be your base)           &lt;ol type="i"&gt;           &lt;li&gt;Change its Metrics to be 1000px, 760px. &lt;/li&gt;            &lt;li&gt;Change the &lt;font color="#0000ff"&gt;NxsApplication.LayoutRoot&lt;/font&gt; from Grid to Canvas (as you want things to freely float).               &lt;br /&gt;              &lt;br /&gt;&lt;strong&gt;NxsApplication.xaml&lt;/strong&gt;               &lt;br /&gt;              &lt;br /&gt;              &lt;div class="csharpcode" style="overflow: auto; width: 100%"&gt;               &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;RCIA.Containers.NxsApplication&amp;quot;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1000&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;760&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LinearGradientBrush&lt;/span&gt; &lt;span class="attr"&gt;EndPoint&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0.5,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;StartPoint&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0.5,1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;GradientStop&lt;/span&gt; &lt;span class="attr"&gt;Color&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF000000&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;GradientStop&lt;/span&gt; &lt;span class="attr"&gt;Color&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF131313&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Offset&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LinearGradientBrush&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
            &lt;/div&gt;
            &lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;
        &lt;/ol&gt;
      &lt;/li&gt;

      &lt;li&gt;Create a &lt;font color="#008080"&gt;UserControl&lt;/font&gt; in Blend, call it &lt;strong&gt;NxsShell.xaml&lt;/strong&gt; (this will be your Chrome) 

        &lt;ol type="i"&gt;
          &lt;li&gt;Keep &lt;font color="#0000ff"&gt;NxsShell.LayoutRoot&lt;/font&gt; type as Grid. &lt;/li&gt;

          &lt;li&gt;Inside &lt;font color="#0000ff"&gt;NxShell&lt;/font&gt;, define the Grid Definition as having the below (you basically want to use the Grid to help you scale-9 the overall assets). 

            &lt;br /&gt;

            &lt;br /&gt;&lt;strong&gt;NxsShell.xaml&lt;/strong&gt; 

            &lt;br /&gt;

            &lt;div class="csharpcode" style="overflow: auto; width: 100%"&gt;
              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;RCIA.Controls.NxsShell&amp;quot;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;400&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns:d&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns:mc&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;mc:Ignorable&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;d&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns:vsm&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;clr-namespace:System.Windows;assembly=System.Windows&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RowDefinition&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RowDefinition&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ColumnDefinition&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ColumnDefinition&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ColumnDefinition&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,0,0,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FFFE0000&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,0,0,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Grid&lt;/span&gt;.&lt;span class="attr"&gt;Column&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF213986&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Grid&lt;/span&gt;.&lt;span class="attr"&gt;ColumnSpan&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,0,0,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Grid&lt;/span&gt;.&lt;span class="attr"&gt;Row&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FFA42020&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt; &lt;span class="attr"&gt;HorizontalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Margin&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,0,0,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;VerticalAlignment&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Stretch&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Grid&lt;/span&gt;.&lt;span class="attr"&gt;Column&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF0943FF&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

              &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        &lt;/ol&gt;
      &lt;/li&gt;

      &lt;li&gt;Create a &lt;font color="#008080"&gt;UserControl&lt;/font&gt; in Blend, call it&lt;strong&gt; NxsRibbon.xaml&lt;/strong&gt; (this will be the container you place your ribbon into). 

        &lt;br /&gt;

        &lt;br /&gt;&lt;strong&gt;NxsRibbon.xaml&lt;/strong&gt; 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;div class="csharpcode" style="overflow: auto; width: 100%; height: 326px"&gt;
          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;RCIA.Controls.NxsRibbon&amp;quot;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1000&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;180&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns:vsm&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;clr-namespace:System.Windows;assembly=System.Windows&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UserControl.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;PullDown&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt; &lt;span class="attr"&gt;BeginTime&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;rectangle&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetProperty&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame&lt;/span&gt; &lt;span class="attr"&gt;KeyTime&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;00:00:01&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;130&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame.KeySpline&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;KeySpline&lt;/span&gt; &lt;span class="attr"&gt;ControlPoint1&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,0&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ControlPoint2&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame.KeySpline&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;PullUp&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt; &lt;span class="attr"&gt;BeginTime&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;rectangle&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetProperty&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame&lt;/span&gt; &lt;span class="attr"&gt;KeyTime&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;00:00:01&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame.KeySpline&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;KeySpline&lt;/span&gt; &lt;span class="attr"&gt;ControlPoint1&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;0,1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ControlPoint2&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1,1&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame.KeySpline&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Background&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF0D0D0D&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;160&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;962&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Left&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Top&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;-115&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF35E50C&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Stroke&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#FF000000&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;rectangle&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Rectangle.RenderTransform&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TransformGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ScaleTransform&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SkewTransform&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RotateTransform&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TranslateTransform&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TransformGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Rectangle.RenderTransform&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Rectangle&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Button&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;23&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;81&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Left&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;911&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Top&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;149&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Content&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Open...&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;btnTest&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UserControl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
    &lt;style type="text/css"&gt;












.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

    &lt;ol&gt;
      &lt;li&gt;Inside &lt;font color="#0000ff"&gt;NxsRibbon.LayoutRoot&lt;/font&gt;, create a rectangle and a button. &lt;/li&gt;

      &lt;li&gt;Name the button &amp;quot;&lt;font color="#0000ff"&gt;btnTest&lt;/font&gt;&amp;quot;. &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;&amp;#160;&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;In &lt;font color="#0000ff"&gt;NxsAplication&lt;/font&gt; instantiate the GUI assets. 

    &lt;ol&gt;
      &lt;li&gt;In &lt;strong&gt;NxsApplication.xaml.cs&lt;/strong&gt; instantiate &lt;font color="#0000ff"&gt;NxsRibbonMenu&lt;/font&gt; &lt;font color="#008080"&gt;UserControl&lt;/font&gt;. As this will ensure it has the lowest z index. &lt;/li&gt;

      &lt;li&gt;In &lt;strong&gt;NxsApplication.xaml.cs&lt;/strong&gt; instantiate &lt;strong&gt;NxsShell&lt;/strong&gt; &lt;font color="#008080"&gt;UserControl&lt;/font&gt;. As this will ensure it has the highest z index. 

        &lt;br /&gt;

        &lt;br /&gt;&lt;strong&gt;NxsApplication.xaml.cs&lt;/strong&gt; 

        &lt;br /&gt;

        &lt;br /&gt;

        &lt;div class="csharpcode" style="overflow: auto; width: 100%; height: 303px"&gt;
          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; NxsApplication : UserControl&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; NxsShell NXS_SHELL;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; NxsRibbon NXS_RIBBON;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; NxsApplication()&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        {&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            InitializeComponent();&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="rem"&gt;// Add the Nexus Ribbon&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            NXS_RIBBON = &lt;span class="kwrd"&gt;new&lt;/span&gt; NxsRibbon();&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.LayoutRoot.Children.Add(NXS_RIBBON);&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &lt;span class="rem"&gt;// Add in the Nexus Chrome.&lt;/span&gt;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            NXS_SHELL = &lt;span class="kwrd"&gt;new&lt;/span&gt; NxsShell();&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            NXS_SHELL.Width = Width;&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            NXS_SHELL.Height = Height;&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.LayoutRoot.Children.Add(NXS_SHELL);&lt;/pre&gt;

          &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        }&lt;/pre&gt;

          &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    }&lt;/pre&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;

  &lt;li&gt;In &lt;strong&gt;NxsRibbon.xaml.cs&lt;/strong&gt; register the &lt;font color="#0000ff"&gt;btnTest&lt;/font&gt; to initiate the &lt;font color="#0000ff"&gt;PullDown&lt;/font&gt; and &lt;font color="#0000ff"&gt;PullUp&lt;/font&gt; Animations. &lt;/li&gt;

  &lt;li&gt;In &lt;strong&gt;NxsRibbon.xaml.cs&lt;/strong&gt; register the Animation state to ensure that if the user wishes to interrupt either the &lt;font color="#0000ff"&gt;PullDown&lt;/font&gt;/&lt;font color="#0000ff"&gt;PullUp&lt;/font&gt; animations that they react in a way that halts the current storyboard, switches to the opposite storyboard and then continues to play. 

    &lt;br /&gt;

    &lt;br /&gt;&lt;strong&gt;NxsRibbon.xaml.cs 
      &lt;br /&gt;&lt;/strong&gt;

    &lt;br /&gt;

    &lt;div class="csharpcode" style="overflow: auto; width: 100%; height: 303px"&gt;
      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; NxsRibbon : UserControl&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        Boolean CURRENT_PULLDOWN_STATE;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        Boolean IN_MOTION;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; NxsRibbon()&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        {&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            InitializeComponent();&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.btnTest.Click += &lt;span class="kwrd"&gt;new&lt;/span&gt; RoutedEventHandler(onButtonTestClick);&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.PullDown.Completed += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(PullDown_Completed);&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.PullUp.Completed += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(PullUp_Completed);&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            CURRENT_PULLDOWN_STATE = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            IN_MOTION = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        }&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; PullUp_Completed(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            CURRENT_PULLDOWN_STATE = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            IN_MOTION = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        }&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; PullDown_Completed(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        {&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            CURRENT_PULLDOWN_STATE = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            IN_MOTION = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; onButtonTestClick(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e) {&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (IN_MOTION)&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;            {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!CURRENT_PULLDOWN_STATE)&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;                    IN_MOTION = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                    CURRENT_PULLDOWN_STATE = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                    PullDown.Pause();&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                    PullUp.SeekAlignedToLastTick(PullDown.GetCurrentTime());&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                    PullUp.Begin();&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;                    IN_MOTION = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;                    CURRENT_PULLDOWN_STATE = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                    PullUp.Pause();&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                    PullDown.SeekAlignedToLastTick(PullUp.GetCurrentTime());&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                    PullDown.Begin();&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;                }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!CURRENT_PULLDOWN_STATE)&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;            {&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;                IN_MOTION = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;                PullDown.Begin();&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;            }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;            {&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;                IN_MOTION = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;                PullUp.Begin();&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;            }&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;        }&lt;/pre&gt;

      &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;    }&lt;/pre&gt;
    &lt;/div&gt;
    &lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;The Conclusion&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt; I found that it was faster to create the initial &lt;strong&gt;StoryBoard&lt;/strong&gt; for &lt;font color="#0000ff"&gt;PullDown&lt;/font&gt;. Once I was happy with the way it animated in/out, I then Duplicated the &lt;strong&gt;StoryBoard&lt;/strong&gt; (via this &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="23" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_11.png" width="32" border="0" /&gt; ). I renamed the &lt;font color="#0000ff"&gt;PullDown&lt;/font&gt;_Copy to &lt;font color="#0000ff"&gt;PullUp&lt;/font&gt; and under the same icon (&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="23" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_11.png" width="32" border="0" /&gt;) I &amp;quot;Reversed&amp;quot; it. This basically figured out how to revert the various properties that are being changed to the appropriate state.&lt;/li&gt;

  &lt;li&gt;Keeping track of the &lt;font color="#008080"&gt;IN_MOTION&lt;/font&gt; and &lt;font color="#408080"&gt;CURRENT_PULLDOWN_STATE&lt;/font&gt; was relatively easy, and although I have a few ideas on how we can improve this concept going forward, it's pretty trivial to setup.&lt;/li&gt;

  &lt;li&gt;Adjusting the animation Easing via the &lt;strong&gt;KeySpline&lt;/strong&gt; editor can attract various results on both Up/Down. It pays to think more about how this will affect the End User firstly, but also the fundamental question you will need to answer going forward &amp;quot;Is this going to annoy them?&amp;quot; if the answer is yes, look to shorten the animation duration or adjust the Easing.

    &lt;br /&gt;

    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_13.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb_5.png" width="205" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;The Outcome.&lt;/h1&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_17.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="328" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb_7.png" width="450" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;This took me less then 30mins to complete. You will also note that I used only basic elements found within XAML to setup the wire frames. I did this as this illustrates that an Interactive Persona can setup the various pieces required to ensure the animation and basic events are ready for the next step in the workflow.&amp;#160; &lt;br /&gt;

  &lt;br /&gt;This means that you could have someone sitting designing the textures and detailed composition of the artwork in their nominated Art Tool. At the same time you could have an Engineer writing the actual &lt;strong&gt;NxsRibbonMenu&lt;/strong&gt; so that it mimics the &lt;a href="http://en.wikipedia.org/wiki/Office_Fluent_Ribbon#Ribbon" target="_blank"&gt;Office Ribbon concept&lt;/a&gt;.&amp;#160; &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_15.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="226" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/SilverlightCreateaPullDownMenuusingAnim_10C0F/image_thumb_6.png" width="450" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;
  &lt;br /&gt;Once all three have completed their individual contribution to the GUI, they are then able to meet for a &amp;quot;Happy meeting&amp;quot; where they basically look at how they are going integrate the pieces into the GUI.

  &lt;br /&gt;

  &lt;br /&gt;In this case, the Interactive Persona is able to swap out the rectangle placeholders and apply specific bitmap textures or whatever it is that is required to execute on the visual finish.

  &lt;br /&gt;

  &lt;br /&gt;Once that's completed, the same persona is also then able to swap out the dummy &lt;strong&gt;NxsRibbonMenu&lt;/strong&gt; place holder and implant the real Control, with it's own black boxed composition.&lt;/p&gt;

&lt;p&gt;This could highlight that using Expression Blend, Visual Studio and Silverlight that three individual personas are quite able to build, design and animate independent of one another. It does however also indicate that there needs to be a Interactive Architect in the room to ensure all the various placeholders and external pieces fit into their respective places within the overall Application composition.&lt;/p&gt;

&lt;h1&gt;Special Notes&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;Nexus is a home grown Silverlight framework being written by a few friends / co-workers of mine (we decided to collaborate on an idea to test some best practices out). This framework isn't likely to be publicly available but should it do so, I'll let you folks know at that appropriate point in time.&lt;/li&gt;

  &lt;li&gt;All visual assets are copyright to me. Basically if I see you stealing my art, I'll hunt you down as don't be that guy/gal whom does that. Ask though should you wish to use it, as I'm pretty open.&lt;/li&gt;

  &lt;li&gt;This was fun and that's what this whole RIA conversation is about, having fun.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8666034" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Blend/default.aspx">Expression Blend</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/XAML/default.aspx">XAML</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Art/default.aspx">Art</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/RIA+Handbook/default.aspx">RIA Handbook</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Animation/default.aspx">Animation</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Frameworks/default.aspx">Frameworks</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Nexus/default.aspx">Nexus</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>WebDesign 2008 - Going from Wireframe Zero to UX Hero</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/06/20/webdesign-2008-going-from-wireframe-zero-to-ux-hero.aspx</link><pubDate>Fri, 20 Jun 2008 00:02:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8623112</guid><dc:creator>scbarnes</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8623112.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8623112</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8623112</wfw:comment><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="115" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/WebDesign2008GoingfromWireframeZerotoUXH_C56A/image_3.png" width="434" border="0" /&gt; &lt;/p&gt;  &lt;p&gt; July 21st Seattle - I'll be speaking at the WebDesign 2008 conference here in Seattle on &amp;quot;&lt;em&gt;&lt;a href="http://webdesignworld.com/2008/seattle/sessions.aspx"&gt;Going from Wireframe Zero to UX Hero&lt;/a&gt;&lt;/em&gt;&amp;quot;.&lt;/p&gt;  &lt;p&gt;The session is basically going to cover the &amp;quot;How&amp;quot; I guess on what's next after you've made the leap of deciding to adopt our technology (Silverlight or WPF). I'll be showcasing a project that I and co-team member &lt;strong&gt;&lt;a href="http://search.live.com/results.aspx?q=David+Pugmire+Microsoft&amp;amp;src=IE-SearchBox"&gt;David Pugmire&lt;/a&gt;&lt;/strong&gt;, been working on the past 2 weeks called RCIA.&lt;/p&gt;  &lt;p&gt;The description I gave (I always hate doing these as how do you fit 45mins of ideas into a paragraph! hehe) is the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The blank canvas can be a daunting and scary thing at times, even more so when you&amp;#8217;ve just taken the leap to learn Microsoft technology. Don&amp;#8217;t stress, as Scott will show you some tips, tricks and insights into how to go from Wireframe Zero, to UX Hero using the latest versions of both Silverlight and Expression Studio.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If folks like the presentation, I'll look into how to re-do it over the web post the conference for those whom aren't able to attend.&lt;/p&gt;  &lt;p&gt;That's all.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://webdesignworld.com/2008/seattle/sessions.aspx" href="http://webdesignworld.com/2008/seattle/sessions.aspx"&gt;http://webdesignworld.com/2008/seattle/sessions.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8623112" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Seattle/default.aspx">Seattle</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Expression+Studio/default.aspx">Expression Studio</category></item><item><title>Windows 7 Multi-touch: Think beyond your Notebook of today.</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/05/29/windows-7-multi-touch-think-beyond-your-notebook-of-today.aspx</link><pubDate>Wed, 28 May 2008 20:51:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8556807</guid><dc:creator>scbarnes</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8556807.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8556807</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8556807</wfw:comment><description>&lt;p&gt;&amp;#160;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Windows7MultitouchThinkbeyondyourNotebo_9892/image_6.png" width="403" height="220" /&gt; &lt;/p&gt;  &lt;p&gt;I like the rest of the world read about our &lt;a href="http://on10.net/blogs/larry/Multi-Touch-in-Windows-7/" target="_blank"&gt;Windows 7 Multi-touch&lt;/a&gt; capabilities and personally thought it was brilliant move on our part. As this paves the way for mainstream use around multi-touch devices, something that the next generation of applications should consider more.&lt;/p&gt;  &lt;p&gt;That being said, one journalist (ZDNet's Mary Jo) &lt;a href="http://blogs.zdnet.com/microsoft/?p=1416" target="_blank"&gt;comment did&lt;/a&gt; catch my eye. She states -&lt;strong&gt;&lt;em&gt; &amp;quot;..I am still a non-believer. Do you want touch on your Windows notebook? I, for one, do not...&amp;quot;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;hmmm... Yes, I agree, I don't want multi-touch on my Macbook Pro, as well the ergonomics just don't suite it, yet if you believe that the industry is going to rest on current designs as being the future templates for laptops going forward.... think again.&lt;/p&gt;  &lt;p&gt;As multi-touch is one of these components that still in many respects needs wide-spread adoption if you will. In that if you were to seed the market with Windows 7 (hypothetical here) and say 70%+ were to have multi-touch capabilities, what would that signal for hardware vendors?&lt;/p&gt;  &lt;p&gt;Apple for example has proven in many respects that consumers are attracted to the multi-touch component found within user experience. Nintendo Wii also has proven that with a &amp;quot;hands-on&amp;quot; form, consumers will and have enjoyed the experience. &lt;/p&gt;  &lt;p&gt;What is the next generation of laptops likely to look like? well take the below picture.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="lg-e-book2" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Windows7MultitouchThinkbeyondyourNotebo_9892/lg-e-book2_3.jpg" width="430" height="321" /&gt; &lt;/p&gt;  &lt;p&gt;It's a &lt;a href="http://laptoping.com/lg-e-book-fuel-oled.html"&gt;future design concept&lt;/a&gt; (LG eBook), but essentially the notion that today's laptops will exist tomorrow is something I just don't put a lot of stock in (Apple's made some strong hints in this space with Apple AIR). &lt;/p&gt;  &lt;p&gt;If you take the sleek thin design found within the LG eBook and combine it with multi-touch, well, some interesting fusion between function and form can take shape here.&lt;/p&gt;  &lt;p&gt;Still not convinced?&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="untitled" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Windows7MultitouchThinkbeyondyourNotebo_9892/untitled_1.png" width="430" height="337" /&gt; &lt;/p&gt;  &lt;p&gt;Ok, well let's look at the theory behind the &lt;a href="http://gizmodo.com/392060/olpc-xo-laptop-20-has-dual-touchscreens-looks-amazing-and-future+y"&gt;XO Laptop&lt;/a&gt; as surely it hints at the value add of multi-touch?. It's design centers purely around the existence of a laptop combined with multi-touch capabilities - that's it in it's distilled form.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="untitled3" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Windows7MultitouchThinkbeyondyourNotebo_9892/untitled3_1.png" width="179" height="120" /&gt; &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="untitled2" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/Windows7MultitouchThinkbeyondyourNotebo_9892/untitled2_1.png" width="179" height="120" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Getting the point now?&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The future of tomorrows laptop has not been defined, and if you think the &lt;strong&gt;Windows 7 Multi-touch&lt;/strong&gt; is something to just gloss over as a wasteful feature with little consumer demand? Think again, it's being prototyped today in many labs and is high on the wishlists of many technologists.&lt;/p&gt;  &lt;p&gt;That being said, having a dream to own the next hollywood style multi-touch device is one thing, but we here at Microsoft are actually quite serious about this space.&lt;/p&gt;  &lt;p&gt;An example, let's look at what the Microsoft Future Health folks are cooking up in their labs. Could you name one hospital anywhere in the world that would not want this vision of the future? What impact could such a technology have on sustaining human life? How could it improve accidents within hospitals?&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 430px; height: 323px" src="http://silverlight.services.live.com/invoke/61417/MicrosoftFutureHealthVision/iframe.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/healthblog/archive/2007/08/02/future-vision-microsoft-knowledge-driven-health.aspx"&gt;View more here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now's the time to get your head into the XAML Game..&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8556807" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/XAML/default.aspx">XAML</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/MS+Research/default.aspx">MS Research</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/User+Experience/default.aspx">User Experience</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Learning Maya and the side lessons i've learnt.</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/03/25/learning-maya-and-the-side-lessons-i-ve-learnt.aspx</link><pubDate>Tue, 25 Mar 2008 03:43:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8334612</guid><dc:creator>scbarnes</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/8334612.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=8334612</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=8334612</wfw:comment><description>&lt;p&gt;I shopped around a lot in the past 5 months as I've wanted to get back into 3D modelling for quite some time. Given my day to day life is Microsoft, I needed a non-Microsoft hobby - mainly to keep me partially sane.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/LearningMayaandthesidelessonsivelearnt_96BF/Picture%209_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px" height="236" alt="Picture 9" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/LearningMayaandthesidelessonsivelearnt_96BF/Picture%209_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; I began to research what software out there can cater to my needs, in that i have a few years of old skool 3D modelling behind me, but didn't want to drink from the firehose again. In the end, I settled on Maya simply due to the communities and massive amount of supporting learning information centred around it.&lt;/p&gt;  &lt;p&gt;That and there is a XAML Plugin for Maya - who knows, this may come in handy down the track.&lt;/p&gt;  &lt;p&gt;One thing also occurred to me was that I didn't really care about Platform choice. In that I own both a PC and Mac but in the end, platform wasn't a high priority for me. I often wonder at how the new generation of designers of tomorrow shop around for their software or technology to adopt.&lt;/p&gt;  &lt;p&gt;Does platform play a significant role? If so why?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/LearningMayaandthesidelessonsivelearnt_96BF/Picture%2010_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px" height="192" alt="Picture 10" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/LearningMayaandthesidelessonsivelearnt_96BF/Picture%2010_thumb.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; Learning is also going to be a challenge, I've decided to head down the 3D Cartoon path as for me this is where the most fun surely is to be had, but it's also the easiest path to choose. Making 3D models realistic is extremly hard, and not for novice modellers.&lt;/p&gt;  &lt;p&gt;How did I come to this conclusion? research and advice and it's interesting to see how people like myself chose learning paths like &amp;quot;Cartoon or Realism&amp;quot;.&lt;/p&gt;  &lt;p&gt;It's all interesting as you see, I look at this entire experience and think to myself - what do our customers face when adopting Silverlight or WPF. How could I improve this experience?&lt;/p&gt;  &lt;p&gt;I'm in the right team now to make an impact on that question, just know that being a designer is many things and the hardest challenge we all face isn't about which platform the nominated software exists on, but how do i learn it and how many will support me in such a quest.&lt;/p&gt;  &lt;p&gt;All I want is to be one day scouted by Pixar and I first need to execute on creative vision, technology philosophy be damned.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8334612" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/XAML/default.aspx">XAML</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Designers, Designers, Designers..</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/03/01/designers-designers-designers.aspx</link><pubDate>Sat, 01 Mar 2008 06:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7969712</guid><dc:creator>scbarnes</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/7969712.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=7969712</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=7969712</wfw:comment><description>&lt;P&gt;&lt;STRONG&gt;Q.What do you expect from Microsoft going forward in the design space.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I meet with a lot of customers in many forms of communication. I often am surprised not by the "we are thinking of adopting Silverlight/WPF" meetings but more, "We have adopted them, but we need help".&lt;/P&gt;
&lt;P&gt;When I get to the bottom of it, it's something they face, well all face universally, in that "we need more muses / inspiration".&lt;/P&gt;
&lt;P&gt;I used to struggle with this years ago, when I conjured creations inside Flash. I'd sit there for hours struggling to bend Photoshop to somehow produce a design that I could take to the next level.&lt;/P&gt;
&lt;P&gt;My intent was to always raise the bar, both personally and hopefully amongst my peers.&lt;/P&gt;
&lt;P&gt;I see this as a critical flaw in the Adobe &amp;amp; Microsoft campaign going forward, in that where do people go to draw inspiration and what life raft can be thrown to them should they stare at the blank &amp;lt;CANVAS&amp;gt;.&lt;/P&gt;
&lt;P&gt;Steve Ballmer has stated we committed to design, and we have lots of talent inside the firewall whom - we probably don't amplify enough. It's something I'm keen to explore further but, you the audience, the readership. What would you like to see from Microsoft around design,.&lt;/P&gt;
&lt;P&gt;What are we doing wrong? (keep it constructive heh).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7969712" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>Meet "Dax", my idea for a mascot (not official).</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/02/04/meet-dax-the-silverlight-mascot.aspx</link><pubDate>Sun, 03 Feb 2008 19:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7414956</guid><dc:creator>scbarnes</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/7414956.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=7414956</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=7414956</wfw:comment><description>&lt;P&gt;I like both the "blue monster campaign" and SIlverlight and given I'm dabbling around in 3D at the moment, I decided to play around with the idea of combining the two.&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: red 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: red 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: red 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: red 1px solid; BACKGROUND-COLOR: yellow"&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: This is not the official mascot for Silverlight, instead it's simply me mucking around with 3D. Please do not use this in anyway in conjunction with Microsoft branding.&lt;/EM&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Here's "Dax" as I'd like to call him (why? dunno but Dax just stuck out as a cute name for the little guy). He's currently sitting in a surgical chair because he made fun of Flashbots new upgrades. He said they were rushed a bit to and looked like he just raided a dead storm trooper for them.&lt;/P&gt;
&lt;P&gt;Flashbot obviously disagrees.&lt;/P&gt;
&lt;P&gt;&lt;A title="Red vs Blue - DAX makes fun of Splashbots new upgrades" href="http://www.flickr.com/photos/68681212@N00/2237599757/" mce_href="http://www.flickr.com/photos/68681212@N00/2237599757/"&gt;&lt;IMG alt="Red vs Blue - DAX makes fun of Splashbots new upgrades" src="http://static.flickr.com/2276/2237599757_6c2b31ae83.jpg" border=0 mce_src="http://static.flickr.com/2276/2237599757_6c2b31ae83.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I'm so i love with these two cool characters, that I'm using them in my PowerPoint decks next week (TechReady 6 - Internal Microsoft conference in Seattle next week).&lt;/P&gt;
&lt;P&gt;Here are some other picks&lt;/P&gt;
&lt;P&gt;&lt;A title="Don't be alarmed, I'm Aussie" href="http://www.flickr.com/photos/68681212@N00/2239584378/" mce_href="http://www.flickr.com/photos/68681212@N00/2239584378/"&gt;&lt;IMG alt="Don't be alarmed, I'm Aussie" src="http://static.flickr.com/2084/2239584378_ea5ddb041d.jpg" border=0 mce_src="http://static.flickr.com/2084/2239584378_ea5ddb041d.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 1 - Since I'm an aussie, don't be alarmed at my accent fellow international audience members)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Here are your go do's." href="http://www.flickr.com/photos/68681212@N00/2239583728/" mce_href="http://www.flickr.com/photos/68681212@N00/2239583728/"&gt;&lt;IMG alt="Here are your go do's." src="http://static.flickr.com/2101/2239583728_916c2db296.jpg" border=0 mce_src="http://static.flickr.com/2101/2239583728_916c2db296.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 2 - Here are your "Go Do's")&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Turning the tide.." href="http://www.flickr.com/photos/68681212@N00/2239583378/" mce_href="http://www.flickr.com/photos/68681212@N00/2239583378/"&gt;&lt;IMG alt="Turning the tide.." src="http://static.flickr.com/2164/2239583378_56e57e6d1c.jpg" border=0 mce_src="http://static.flickr.com/2164/2239583378_56e57e6d1c.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 3 - Putting Flashbot under the ...drill?&lt;/EM&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Title of my presentation" href="http://www.flickr.com/photos/68681212@N00/2238793631/" mce_href="http://www.flickr.com/photos/68681212@N00/2238793631/"&gt;&lt;IMG alt="Title of my presentation" src="http://static.flickr.com/2258/2238793631_949f9a59c1.jpg" border=0 mce_src="http://static.flickr.com/2258/2238793631_949f9a59c1.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 4 - Title Screen.. FLashbot's so proud of his new helmet)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Balance Back to The Force.." href="http://www.flickr.com/photos/68681212@N00/2238389772/" mce_href="http://www.flickr.com/photos/68681212@N00/2238389772/"&gt;&lt;IMG alt="Balance Back to The Force.." src="http://static.flickr.com/2056/2238389772_569a3e394c.jpg" border=0 mce_src="http://static.flickr.com/2056/2238389772_569a3e394c.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 5 - Old title screen, Dax and Flashbot having a fall out over it)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Splashbot being disected" href="http://www.flickr.com/photos/68681212@N00/2237599525/" mce_href="http://www.flickr.com/photos/68681212@N00/2237599525/"&gt;&lt;IMG alt="Splashbot being disected" src="http://static.flickr.com/2218/2237599525_07c41204d4.jpg" border=0 mce_src="http://static.flickr.com/2218/2237599525_07c41204d4.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;(Fig 6 - Flashbot pinned to the wall heh.)&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7414956" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Flash/default.aspx">Flash</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Comic/default.aspx">Comic</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item><item><title>What resolution do you design RIA in?</title><link>http://blogs.msdn.com/msmossyblog/archive/2008/01/28/what-resolution-do-you-design-ria-in.aspx</link><pubDate>Mon, 28 Jan 2008 04:15:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7275845</guid><dc:creator>scbarnes</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/msmossyblog/comments/7275845.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msmossyblog/commentrss.aspx?PostID=7275845</wfw:commentRss><wfw:comment>http://blogs.msdn.com/msmossyblog/rsscomments.aspx?PostID=7275845</wfw:comment><description>&lt;p&gt;I read an &lt;a href="http://www.codeodor.com/index.cfm/2008/1/22/Go-back-to-800-pixel-wide-site-designs/1914" target="_blank"&gt;interesting post&lt;/a&gt; this morning on how the author wanted folks to consider the 800px resolution for their designs. He cites that although he has a large resolution, it doesn't mean that he's not also using other applications at the same time.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;...But with 1900+ pixels, &lt;strong&gt;I keep half for the browser and half for other stuff&lt;/strong&gt;. If you go with 1000+ pixels, it doesn't leave me with enough room for my other apps, and I've got to (ack!) scroll sideways. It's not as bad with the ball on the Mighty Mouse, but most people don't have one and it's not exactly effortless even with one... -&amp;#160; &lt;em&gt;Sammy Larbi&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It's an interesting point to debate, as whilst on one hand I do agree with him that the potential for your audience to overlay multiple smaller applications is there, yet at the same time the benefits of expanding your resolution to accommodate more on screen can also be in an asset.&lt;/p&gt;  &lt;p&gt;Screen real estate is a hard subject to nail as even if you're the best information architect in the world, you will still annoy someone with your chosen path. The trick is to figure out you collateral damage, in that what percentage of your user base is going to disagree with your design.&lt;/p&gt;  &lt;p&gt;The easiest way to work that out is to do some basic research, check the statistics of your existing site (assuming you had one already) then ask them but do so in a way that doesn't draw attention to your intent - as humans are funny at times, they do one thing but say another.&lt;/p&gt;  &lt;p&gt;eg: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Q. Do you think Coke is good for your diet...       &lt;br /&gt;&lt;/strong&gt;A. Yes, it's terrible...&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The intent was it's terrible, bad, negative, stop!. Yet they will drink coke.&lt;/p&gt;  &lt;p&gt;Here is a tip, we are habitual creatures and if you can compliment our patterns of habit, you're likely to become less annoying.&lt;/p&gt;  &lt;p&gt;Take this blog for example. Below is a graph indicating my resolution stats for this blog. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/WhatresolutiondoyoudesignRIAin_9E5C/image_6.png" width="105" border="0" /&gt; &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="236" alt="image" src="http://blogs.msdn.com/blogfiles/msmossyblog/WindowsLiveWriter/WhatresolutiondoyoudesignRIAin_9E5C/image_5.png" width="233" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Would it be a good idea for me to go back to 800x600 resolution? If not what would you consider my ideal resolution.&lt;/p&gt;  &lt;p&gt;Know your audiences technology limitations, know your customers habits and above all plot your approaches into a &lt;a href="http://www.charityvillage.com/cv/research/rom18.html"&gt;Risk Matrix&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.charityvillage.com/CV/charityvillage/graphics/risk_matrix.gif" /&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7275845" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/RIA/default.aspx">RIA</category><category domain="http://blogs.msdn.com/msmossyblog/archive/tags/Design/default.aspx">Design</category></item></channel></rss>