<?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>IRhetoric - Karsten Januszewski   : Avalon</title><link>http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx</link><description>Tags: Avalon</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Inspired By Flash Math Creativity #2: WPF Planets</title><link>http://blogs.msdn.com/karstenj/archive/2007/02/23/inspired-by-flash-math-creativity-2-wpf-planets.aspx</link><pubDate>Sat, 24 Feb 2007 00:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1749785</guid><dc:creator>karstenj</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1749785.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1749785</wfw:commentRss><description>&lt;P&gt;My next inspiration from the algorithms introduced in &lt;A target=_blank href="http://www.friendsofed.com/fmc/FMCv2/FMC.html" mce_href="http://www.friendsofed.com/fmc/FMCv2/FMC.html"&gt;Flash Math Creativity&lt;/A&gt;&amp;nbsp;was based on the work of &lt;A target=_blank href="http://www.nooflat.nu/" mce_href="http://www.nooflat.nu/"&gt;Jamie MacDonald&lt;/A&gt;. In looking at his work,&amp;nbsp; I quickly realized that I was going to need to brush up on my trigonometry skills. This led me to another great Friend of Ed book, &lt;A target=_blank href="http://www.friendsofed.com/book.html?isbn=1590595181" mce_href="http://www.friendsofed.com/book.html?isbn=1590595181"&gt;Foundation ActionScript Animation: Making Things Move&lt;/A&gt;, which has some great trigonometry for animation explanations.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You can see the&amp;nbsp;results of my latest experiment &lt;A target=_blank href="http://rhizohm.net/download/netfx3/apps/planets.xbap" mce_href="http://rhizohm.net/download/netfx3/apps/planets.xbap"&gt;here&lt;/A&gt; and the code is &lt;A href="http://rhizohm.net/download/netfx3/planets/planets.zip" mce_href="http://rhizohm.net/download/netfx3/planets/planets.zip"&gt;here&lt;/A&gt;. Just to make sure I was up an running with basic trig, I created a sine wave in 01 as follows:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://wpf.netfx3.com/direct/planets"&gt;&lt;IMG style="MARGIN: 0px 10px 10px" border=0 align=left src="http://rhizohm.net/download/netfx3/p1.jpg"&gt;&lt;/A&gt;double x = 0;&lt;BR&gt;double y = 0;&lt;BR&gt;double angle = 0;&lt;BR&gt;for (int i = 0; i &amp;lt; 500; i++)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x += 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; y = 200 + Math.Sin(angle) * 50;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ellipse el = new Ellipse();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; el.Width = 2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; el.Height = 2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; el.Fill = Brushes.Red;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.SetLeft(el, x);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.SetTop(el, y);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stage.Children.Add(el);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; angle += .05;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;Nothing fancy here.&amp;nbsp; To make a circle, I changed the x to be x = Math.Cos(angle) * 50.&amp;nbsp; This is the basis for doing circle and ellipse animations.&amp;nbsp; Now, instead of trying to do animations using &lt;STRONG&gt;CompositionTarget.Rendering&lt;/STRONG&gt;, I remembered that the SDK has a great sample called &lt;A target=_blank href="http://msdn2.microsoft.com/en-us/library/ms771715.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms771715.aspx"&gt;CustomAnimations&lt;/A&gt;, in which a CircleAnimation exists already using this formula.&amp;nbsp; Here's the key code where it overrides&amp;nbsp;the &lt;STRONG&gt;GetCurrentValueCore&lt;/STRONG&gt; method to create the circle effect using basic trig:&lt;/P&gt;
&lt;P&gt;protected override double GetCurrentValueCore(double defaultOriginValue, double defaultDestinationValue, AnimationClock clock)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double returnValue;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double time = clock.CurrentProgress.Value;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // math magic: calculate new coordinates using polar coordinate equations. This requires two &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // animations to be wired up in order to move in a circle, since we don't make any assumptions&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // about what we're animating (e.g. a TranslateTransform). &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Direction == DirectionEnum.XDirection)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnValue = Math.Cos(2 * Math.PI * time);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnValue = Math.Sin(2 * Math.PI * time);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Need to add the defaultOriginValue so that composition works.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return returnValue * Radius + defaultOriginValue;&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;At first, I used this in code to create the effect of these circles circling toward you using BeginAnimation, based on the TowardUs sample in the Flash Math Creativity book (the very first sample):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://wpf.netfx3.com/direct/planets"&gt;&lt;IMG style="MARGIN: 0px 10px 10px" border=0 align=right src="http://rhizohm.net/download/netfx3/p2.jpg"&gt;&lt;/A&gt;CircleAnimation cx = new CircleAnimation();&lt;BR&gt;cx.Duration = new Duration(TimeSpan.FromSeconds(1.5));&lt;BR&gt;cx.Direction = CircleAnimation.DirectionEnum.XDirection;&lt;BR&gt;cx.Radius = 150;&lt;BR&gt;cx.RepeatBehavior = RepeatBehavior.Forever;&lt;/P&gt;
&lt;P&gt;CircleAnimation cy = new CircleAnimation();&lt;BR&gt;cy.Duration = new Duration(TimeSpan.FromSeconds(1.5));&lt;BR&gt;cy.Direction = CircleAnimation.DirectionEnum.YDirection;&lt;BR&gt;cy.Radius = 150;&lt;BR&gt;cy.RepeatBehavior = RepeatBehavior.Forever;&lt;/P&gt;
&lt;P&gt;stage.Children.Add(el);&lt;BR&gt;el.BeginAnimation(Ellipse.OpacityProperty, opacityAnimation);&lt;BR&gt;st.BeginAnimation(ScaleTransform.ScaleXProperty, d);&lt;BR&gt;st.BeginAnimation(ScaleTransform.ScaleYProperty, d);&lt;BR&gt;tt.BeginAnimation(TranslateTransform.XProperty, cx);&lt;BR&gt;tt.BeginAnimation(TranslateTransform.YProperty, cy);&lt;/P&gt;
&lt;P&gt;This resulted in 03.&amp;nbsp; It worked, but the code started getting ugly as far as getting each circle to fire when I wanted it to.&amp;nbsp; I found myself using a timer&amp;nbsp;and wiring up an anonymous delegate.&amp;nbsp;I realized &lt;STRONG&gt;Storyboards&lt;/STRONG&gt; and &lt;STRONG&gt;ParallelTimelines&lt;/STRONG&gt; would serve me much better, which are much easier to wire up in XAML than in code.&amp;nbsp; So,&amp;nbsp; 04 is the same thing, but a XAML solution instead:&lt;/P&gt;
&lt;P&gt;&amp;lt;ParallelTimeline BeginTime="0:0:0"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;DoubleAnimation&amp;nbsp; Duration="0:0:1.5" To="25" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;DoubleAnimation Duration="0:0:1.5"&amp;nbsp; To="25" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;DoubleAnimation Duration="0:0:1.5" From="1"&amp;nbsp; To="0" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="(UIElement.Opacity)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;CustomAnimations:CircleAnimation Duration="0:0:1.5" Radius="150" Direction="YDirection" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(TranslateTransform.Y)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;CustomAnimations:CircleAnimation Duration="0:0:1.5" Radius="150" Direction="XDirection" Storyboard.TargetName="ellipse0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(TranslateTransform.X)"/&amp;gt;&lt;BR&gt;&amp;lt;/ParallelTimeline&amp;gt;&lt;/P&gt;
&lt;P&gt;By using parallel timelines I could structure my animations and when they fired. &lt;/P&gt;
&lt;P&gt;A nice thing about this CustomAnimation is that it can be applied to 3D animations as well, applied to the &lt;STRONG&gt;TranslateTransform3D&lt;/STRONG&gt; which I did 05, changing the &lt;STRONG&gt;Radius&lt;/STRONG&gt; property to be much smaller to fit the coordinates I was using for my ViewPort.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://wpf.netfx3.com/direct/planets"&gt;&lt;IMG style="MARGIN: 0px 10px 10px" border=0 align=left src="http://rhizohm.net/download/netfx3/p3.jpg"&gt;&lt;/A&gt;void towardus3d_Loaded(object sender, RoutedEventArgs e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sphere = new GeometryModel3D(sphereFactory.Mesh, materialGreen);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModelVisual3D mv3d = myViewPort3D.Children[1] as ModelVisual3D;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mv3d.Content = sphere;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CircleAnimation ca3d_y = new CircleAnimation();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_y.Duration = TimeSpan.FromSeconds(5);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_y.RepeatBehavior = RepeatBehavior.Forever;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_y.Radius = .5;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_y.Direction = CircleAnimation.DirectionEnum.YDirection;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CircleAnimation ca3d_x = new CircleAnimation();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_x.Duration = TimeSpan.FromSeconds(5);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_x.RepeatBehavior = RepeatBehavior.Forever;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_x.Radius = .5;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ca3d_x.Direction = CircleAnimation.DirectionEnum.XDirection;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModelTranslate.BeginAnimation(TranslateTransform3D.OffsetYProperty, ca3d_y);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModelTranslate.BeginAnimation(TranslateTransform3D.OffsetXProperty, ca3d_x);&lt;BR&gt;}&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It then dawned on me, as I looked at 05, an orbiting sphere, that it&amp;nbsp;would make for great planets.&amp;nbsp;&amp;nbsp;I went out to &lt;A target=_blank href="http://maps.jpl.nasa.gov/jupiter.html" mce_href="http://maps.jpl.nasa.gov/jupiter.html"&gt;NASA&lt;/A&gt; and found the texture&amp;nbsp;maps for Jupiter and its moons.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I also wanted to do all of this 3D work in XAML, so I made a class called &lt;STRONG&gt;SphereModelVisual3D&lt;/STRONG&gt; that I could instantiate Jupiter, for example, like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://wpf.netfx3.com/direct/planets"&gt;&lt;IMG style="MARGIN: 0px 10px 10px" border=0 align=right src="http://rhizohm.net/download/netfx3/p4.jpg"&gt;&lt;/A&gt;&amp;lt;mv3d:SphereModelVisual3D x:Name="Jupiter" &amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;mv3d:SphereModelVisual3D.Material&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DiffuseMaterial&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DiffuseMaterial.Brush &amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ImageBrush ImageSource="&lt;A href="http://maps.jpl.nasa.gov/pix/jup0vss1.jpg%22/"&gt;http://maps.jpl.nasa.gov/pix/jup0vss1.jpg%22/&lt;/A&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DiffuseMaterial.Brush&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DiffuseMaterial&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/mv3d:SphereModelVisual3D.Material&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mv3d:SphereModelVisual3D.Transform&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Transform3DGroup &amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ScaleTransform3D ScaleX="2" ScaleY="2"&amp;nbsp; ScaleZ="2" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RotateTransform3D&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RotateTransform3D.Rotation&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AxisAngleRotation3D Angle="0" Axis="0 1 0" x:Name="Jupiter_rotation"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/AxisAngleRotation3D&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RotateTransform3D.Rotation&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/RotateTransform3D&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Transform3DGroup&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/mv3d:SphereModelVisual3D.Transform&amp;gt;&lt;BR&gt;&amp;lt;/mv3d:SphereModelVisual3D&amp;gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The animation that handles the elliptical orbits needs to transform the Z property the TranslateTransform3D.&amp;nbsp; It then looks like this:&lt;/P&gt;
&lt;P&gt;&amp;lt;ParallelTimeline RepeatBehavior="Forever"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;DoubleAnimation Duration="0:0:10"&amp;nbsp; To="360"&amp;nbsp; Storyboard.TargetName="Jupiter_rotation" Storyboard.TargetProperty="Angle"/&amp;gt;&lt;BR&gt;&amp;lt;/ParallelTimeline&amp;gt;&lt;BR&gt;&amp;lt;ParallelTimeline RepeatBehavior="Forever"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;CustomAnimations:CircleAnimation Duration="0:0:2"&amp;nbsp; Radius="9" Direction="YDirection" Storyboard.TargetName="Io" Storyboard.TargetProperty="(ModelVisual3D.Transform).(Transform3DGroup.Children)[2].(TranslateTransform3D.OffsetZ)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;CustomAnimations:CircleAnimation Duration="0:0:2"&amp;nbsp; Radius="2" Direction="XDirection" Storyboard.TargetName="Io" Storyboard.TargetProperty="(ModelVisual3D.Transform).(Transform3DGroup.Children)[2].(TranslateTransform3D.OffsetX)"/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;DoubleAnimation Duration="0:0:2"&amp;nbsp; To="360"&amp;nbsp; Storyboard.TargetName="Io_rotation" Storyboard.TargetProperty="Angle"/&amp;gt;&lt;BR&gt;&amp;lt;/ParallelTimeline&amp;gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The result is in 06. It is not astronomically correct as far as scale&amp;nbsp;-- I'll leave that for someone with some more time on their hands, but I liked the end result.&amp;nbsp; I also threw in the TrackBall control from the &lt;A target=_blank href="http://www.codeplex.com/3DTools" mce_href="http://www.codeplex.com/3DTools"&gt;3d tools project&lt;/A&gt; so you can trackball the whole model. &lt;/P&gt;
&lt;P mce_keep="true"&gt;The code is &lt;A href="http://wpf.netfx3.com/direct/planets/planets.zip" mce_href="http://wpf.netfx3.com/direct/planets/planets.zip"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1749785" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/3D/default.aspx">3D</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Flash/default.aspx">Flash</category></item><item><title>WPF Application Portfolio Wiki Updated -- More WPF Apps!</title><link>http://blogs.msdn.com/karstenj/archive/2007/02/09/wpf-application-portfolio-wiki-updated.aspx</link><pubDate>Sat, 10 Feb 2007 01:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1638052</guid><dc:creator>karstenj</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1638052.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1638052</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://blogs.msdn.com/tims" target=_blank mce_href="http://blogs.msdn.com/tims"&gt;Tim Sneath&lt;/A&gt;&amp;nbsp;has been doing a great job of blogging the many Vista/WPF showcase applications that are being deployed right now.&amp;nbsp; If you are looking for a quick list of URLs that you can hit for the .XBAP or .APPLICATION files, please go to the &lt;A class="" href="http://channel9.msdn.com/wiki/default.aspx/WPF.ApplicationPortfolio" target=_blank mce_href="http://channel9.msdn.com/wiki/default.aspx/WPF.ApplicationPortfolio"&gt;WPF Application Portfolio wiki&lt;/A&gt;, which I've updated with all the links, tagging them with the kind of deployment used -- very cool to see the number of .application and .xbap applications out there!&amp;nbsp; If you are doing a demo and trying to show someone the WPF portfolio, hopefully this wiki page will be useful -- and watch for more coming...&lt;/P&gt;
&lt;P&gt;I've also added some that Tim hasn't documented yet, in particular a whole bunch from Japan, as well as one from Metaliq on snowboarding visualization. Some screenshots below.&amp;nbsp; &lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;A href="http://www.metaliq.com/wpf/"&gt;http://www.metaliq.com/wpf/&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&lt;A href="http://weathernews.com/wpfglobal.xbap"&gt;&lt;FONT size=2&gt;http://weathernews.com/wpfglobal.xbap&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://sp.warnermycal.com/vista/contents/preview.xbap"&gt;&lt;FONT size=2&gt;http://sp.warnermycal.com/vista/contents/preview.xbap&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.shiseido.co.jp/biyou_dic_vista/shiseido.xbap"&gt;&lt;FONT size=2&gt;http://www.shiseido.co.jp/biyou_dic_vista/shiseido.xbap&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.dosv.jp/parts_assembler/PartsAssembler.xbap"&gt;&lt;FONT size=2&gt;http://www.dosv.jp/parts_assembler/PartsAssembler.xbap&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://japan.cnet.com/wpf/photo/"&gt;&lt;FONT size=2&gt;http://japan.cnet.com/wpf/photo/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 1024px; HEIGHT: 768px" height=768 src="http://www.metaliq.com/wpf/images/screen2full.jpg" width=1024 mce_src="http://www.metaliq.com/wpf/images/screen2full.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 697px; HEIGHT: 377px" height=377 src="http://winfx.members.winisp.net/images/1.png" width=697 mce_src="http://winfx.members.winisp.net/images/1.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 584px; HEIGHT: 400px" height=400 src="http://winfx.members.winisp.net/images/2.png" width=584 mce_src="http://winfx.members.winisp.net/images/2.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 700px; HEIGHT: 425px" height=425 src="http://winfx.members.winisp.net/images/3.png" width=700 mce_src="http://winfx.members.winisp.net/images/3.png"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1638052" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/weblive/default.aspx">weblive</category></item><item><title>Announcing Expression Blend Beta 2 and Expression Design Beta 1</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/30/announcing-expression-blend-beta-2-and-expression-design-beta-1.aspx</link><pubDate>Wed, 31 Jan 2007 08:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1561764</guid><dc:creator>karstenj</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1561764.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1561764</wfw:commentRss><description>&lt;P&gt;You can now go download &lt;A class="" href="http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/Expression-Blend/try.mspx"&gt;Expression Blend Beta 2&lt;/A&gt; as well as &lt;A class="" href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx" target=_blank mce_href="http://www.microsoft.com/products/expression/en/expression-design/free-trial.mspx"&gt;Expression Design Beta 1&lt;/A&gt;. Both applications have received significant work since their last incarnation with tons of bugs fixed. Go give 'em a whirl.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 312px; HEIGHT: 213px" height=213 src="http://www.microsoft.com/products/expression/en/images/ex-blend/boxShot_Blend.jpg" width=312 mce_src="http://www.microsoft.com/products/expression/en/images/ex-blend/boxShot_Blend.jpg"&gt;&lt;IMG style="WIDTH: 312px; HEIGHT: 213px" height=213 src="http://www.microsoft.com/products/expression/en/images/ex-design/boxShot_Design.jpg" width=312 mce_src="http://www.microsoft.com/products/expression/en/images/ex-design/boxShot_Design.jpg"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1561764" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Expression+Blend/default.aspx">Expression Blend</category></item><item><title>Databinding In Expression Blend: Forget the Data and Do the Bind</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/26/databinding-in-expression-blend-forget-the-data-and-do-the-bind.aspx</link><pubDate>Fri, 26 Jan 2007 23:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1538016</guid><dc:creator>karstenj</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1538016.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1538016</wfw:commentRss><description>&lt;P&gt;I just posted a &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=276212" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=276212"&gt;screencast&lt;/A&gt; showing how to wire up UI elements using Blend.&amp;nbsp; The general premise is that databinding in WPF is about more&amp;nbsp;than just data; it also allows you to connect UI properties, like wiring a slider up to a progress bar. Blend exposes this is a very useable way, once you know your way around.&amp;nbsp; I also use some cool styles from this &lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/01/Foundations/default.aspx"&gt;Charles Petzold article&lt;/A&gt;&amp;nbsp;and show how, in Blend, you can extract a style and template from a piece of XAML to be reused in other parts of your application.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 400px; HEIGHT: 424px" height=424 src="http://msdn.microsoft.com/msdnmag/issues/07/01/Foundations/fig12.gif" width=400 mce_src="http://msdn.microsoft.com/msdnmag/issues/07/01/Foundations/fig12.gif"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1538016" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>The Definitive Post on XBAP Trust Levels</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/11/the-definitive-post-on-xbap-trust-levels.aspx</link><pubDate>Fri, 12 Jan 2007 00:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1452289</guid><dc:creator>karstenj</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1452289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1452289</wfw:commentRss><description>I've written about XBAPs and full trust in the past, but never as thoroughly as Karen Corby just did in her post on &lt;A class="" href="http://scorbs.com/2007/01/10/xbap-trust-levels/" target=_blank mce_href="http://scorbs.com/2007/01/10/xbap-trust-levels/"&gt;XBAP trust levels&lt;/A&gt;.&amp;nbsp; She spent a lot of time getting this post correct, reviewing with various folks within Microsoft and providing very solid guidance.&amp;nbsp; It is the kind of post that should be in the SDK and official docs, but didn't make it due to time constraints.&amp;nbsp; If you have questions about XBAPs and full trust, this is a must read.&amp;nbsp; Her deployment recommendations in particular are essential if you are thinking about going down the full trust XBAP road.&amp;nbsp; But keep her guidance in mind: only do this if you must.&amp;nbsp; ClickOnce .exe's are pretty slick and don't have nearly the issues associated with them as full trust .xbaps. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1452289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Yahoo Messenger for Vista Debuts at CES</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/09/yahoo-messenger-for-vista-debuts-at-ces.aspx</link><pubDate>Tue, 09 Jan 2007 20:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1439896</guid><dc:creator>karstenj</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1439896.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1439896</wfw:commentRss><description>&lt;P&gt;I'm here at CES, where Yahoo and Microsoft&amp;nbsp;showed off a preview of the new Yahoo Messenger for Vista, built entirely on WPF.&amp;nbsp; Yahoo has &lt;A class="" href="http://messenger.yahoo.com/windowsvista.php" target=_blank mce_href="http://messenger.yahoo.com/windowsvista.php"&gt;a great landing page&lt;/A&gt; with screenshots, a screencast of the app and a sign up sheet for when they release a beta.&amp;nbsp; I held off on blogging this until we got the Channel 10 interview posted, where I hooked up with &lt;A class="" href="http://www.jeffsandquist.com/" target=_blank mce_href="http://www.jeffsandquist.com/"&gt;Jeff Sandquist&lt;/A&gt; and the crew to do &lt;A class="" href="http://www.on10.net/Blogs/larry/yahoo-messenger-on-wpf/" target=_blank mce_href="http://www.on10.net/Blogs/larry/yahoo-messenger-on-wpf/"&gt;an interview with the Yahoo folks&lt;/A&gt;, Joshua Jacobson and Matthew Skyrm, about the application.&amp;nbsp; (If you haven't seen Channel 10, it is the sister to Channel 9, targeted to&amp;nbsp;enthusiasts and power users.) They talk about their motivations for building this new messenger, their experience with WPF and Expression and more.&amp;nbsp; They've got a &lt;A class="" href="http://blog.messenger.yahoo.com/blog/2007/01/08/introducing-yahoo-messenger-for-windows-vista/" target=_blank mce_href="http://blog.messenger.yahoo.com/blog/2007/01/08/introducing-yahoo-messenger-for-windows-vista/"&gt;blog&lt;/A&gt; up as well!&amp;nbsp; I've been working with the lead developer, &lt;A class="" href="http://eric.burke.name/dotnetmania/" target=_blank mce_href="http://eric.burke.name/dotnetmania/"&gt;Eric Burke&lt;/A&gt;, along with &lt;A class="" href="http://www.frogdesign.com/" mce_href="http://www.frogdesign.com"&gt;Frog Design&lt;/A&gt;, including &lt;A class="" href="http://thewpfblog.com/?p=76" target=_blank mce_href="http://thewpfblog.com/?p=76"&gt;Lee Brimelow&lt;/A&gt;, on this application and the alpha is looking great. This application is a shining example of the opportunities and possibilities of the Vista and .NET 3.0 platform. Expect to hear more about this, for sure...&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 600px; HEIGHT: 547px" height=547 src="http://us.i1.yimg.com/us.yimg.com/i/us/msg/vista/buddy_list_05.jpg" width=600 mce_src="http://us.i1.yimg.com/us.yimg.com/i/us/msg/vista/buddy_list_05.jpg"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1439896" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Vista/default.aspx">Vista</category></item><item><title>Gradient Animation Obsession Redux</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/04/gradient-animation-obsession-redux.aspx</link><pubDate>Fri, 05 Jan 2007 01:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1412842</guid><dc:creator>karstenj</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1412842.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1412842</wfw:commentRss><description>&lt;P&gt;I guess I didn't call it an obsession without reason, as I can't seem to keep away from those hyponotizing gradient animations.&amp;nbsp; I modified the tool I posted last month so that it would output the XAML, such that a designer could actually use the tool and never touch a line of XAML.&amp;nbsp; I set up the tool to output either WPF or WPF/E XAML, as WPF/E doesn't support everything (yet) that the tool uses, such as &lt;STRONG&gt;AccelerationRatio&lt;/STRONG&gt;, as well as having a different namespace.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I ran into some problems with &lt;STRONG&gt;XAMLWriter&lt;/STRONG&gt; and the way it strips x:Name from the XAML it produces, so there is some hacky string replace code in there that I'm not proud of.&amp;nbsp;&amp;nbsp;I could have used property paths as an alternative.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Because you can't use &lt;STRONG&gt;XAMLWriter&lt;/STRONG&gt; in an XBAP, I made the tool a ClickOnce .application that doesn't get installed on your machine but just runs in the ClickOnce cache.&amp;nbsp; Hopefully, we'll see more and more of these types of apps -- mini applications that never get installed but can do more than in-browser applications.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://www.rhizohm.net/download/netfx3/gradientobsessionapp.zip" mce_href="http://www.rhizohm.net/download/netfx3/gradientobsessionapp.zip"&gt;Download the source&lt;/A&gt; or &lt;A target=_blank href="http://www.rhizohm.net/download/netfx3/apps/gradientobsessionapp.application" mce_href="http://www.rhizohm.net/download/netfx3/apps/gradientobsessionapp.application"&gt;run the tool&lt;/A&gt;.&amp;nbsp;&amp;nbsp; Also, check out some of the gradient animations I made with the tool and put into a &lt;A target=_blank href="http://winfx.members.winisp.net/wpfe/GradientObsession/" mce_href="http://winfx.members.winisp.net/wpfe/GradientObsession/"&gt;WPF/E page&lt;/A&gt; here (screenshot below, although it doesn't do justice to the hypnotizing effect...)&lt;/P&gt;
&lt;P&gt;&lt;A target=_blank href="http://winfx.members.winisp.net/wpfe/GradientObsession/" mce_href="http://winfx.members.winisp.net/wpfe/GradientObsession/" border="0"&gt;&lt;IMG style="WIDTH: 512px; HEIGHT: 424px" border=0 src="http://winfx.members.winisp.net/images/gradientsoup.jpg" width=512 height=424 mce_src="http://winfx.members.winisp.net/images/gradientsoup.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1412842" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF_2F00_e/default.aspx">WPF/e</category></item><item><title>The North Face In-Store Explorer</title><link>http://blogs.msdn.com/karstenj/archive/2007/01/02/the-north-face-in-store-explorer.aspx</link><pubDate>Tue, 02 Jan 2007 21:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1399923</guid><dc:creator>karstenj</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1399923.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1399923</wfw:commentRss><description>&lt;P&gt;It was at PDC 2005 when &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=116426" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=116426"&gt;The North Face showed a prototype of a WPF kiosk&lt;/A&gt; they were building.&amp;nbsp; Well, with Vista and WPF having RTM'd, the real kiosk has been deployed, which you can read about from &lt;A class="" href="http://flog.fluid.com/2006/12/19/the-north-face-in-store-explorer-is-live/" target=_blank mce_href="http://flog.fluid.com/2006/12/19/the-north-face-in-store-explorer-is-live/"&gt;lead engineer Darren David at Fluid's blog&lt;/A&gt;.&amp;nbsp; (Fluid is the agency that did the work for The North Face.)&amp;nbsp; If you live near a &lt;A class="" href="http://thenorthface.com/na/store-locations.html" target=_blank mce_href="http://thenorthface.com/na/store-locations.html"&gt;North Face retail store&lt;/A&gt;, go check it out!&amp;nbsp; This is an exciting milestone for WPF and Vista, as it is one of the most ambitious .NET 3.0/Vista applications deployed to date.&amp;nbsp; Note that &lt;A class="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/fluid.asp" target=_blank mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/fluid.asp"&gt;the white paper&lt;/A&gt; written about this application is still relevant and worth reading.&amp;nbsp;&amp;nbsp; The code samples all work just fine on the final bits&amp;nbsp;and have some useful code as far as state management,&amp;nbsp;image montages and a 3D carousel.&lt;/P&gt;
&lt;P&gt;&lt;IMG title="The North Face In-Store Explorer" style="WIDTH: 640px; HEIGHT: 512px" height=512 alt="The North Face In-Store Explorer" src="http://winfx.members.winisp.net/images/tnf.jpg" width=640 mce_src="http://winfx.members.winisp.net/images/tnf.jpg"&gt;&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1399923" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Gradient Obsession: A Tool For Tweaking Gradient Animations</title><link>http://blogs.msdn.com/karstenj/archive/2006/12/12/gradient-obsession-a-tool-for-tweaking-gradient-animations.aspx</link><pubDate>Wed, 13 Dec 2006 01:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1268652</guid><dc:creator>karstenj</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1268652.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1268652</wfw:commentRss><description>&lt;P&gt;I started getting slightly obsessed/hypnotized with gradient animations and wanted a tool to see what I could do, so I built one.&amp;nbsp; Basically, I just bound a bunch of sliders to the various transforms on the brush transform.&amp;nbsp; I reused the infrastructure from an earlier post.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;As you watch the animation and see something you like, you can pause it and note the values for your own purpose.&amp;nbsp; I didn't actually create an exporter for the xaml, but that wouldn't&amp;nbsp;be hard.&amp;nbsp; &lt;A href="http://rhizohm.net/download/netfx3/gradientobsessionapp.zip" mce_href="http://rhizohm.net/download/netfx3/gradientobsessionapp.zip"&gt;Download the source&lt;/A&gt; or &lt;A target=_blank href="http://rhizohm.net/download/netfx3/apps/gradientobsessionapp.application" mce_href="http://rhizohm.net/download/netfx3/apps/gradientobsessionapp.application"&gt;run the XBAP&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://wpf.netfx3.com/direct/gradientobsession/gradientobsession.xbap" border="0"&gt;&lt;IMG border=0 src="http://winfx.members.winisp.net/images/torustripapp.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1268652" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Woodgrove Finance Application Source Code Posted</title><link>http://blogs.msdn.com/karstenj/archive/2006/12/05/woodgrove-finance-application-source-code-posted.aspx</link><pubDate>Wed, 06 Dec 2006 04:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1214472</guid><dc:creator>karstenj</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1214472.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1214472</wfw:commentRss><description>&lt;P&gt;The Woodgrove Finance Application is a great demo of how WPF can be used to create better data visualization, in this case for financial data.&amp;nbsp; I've posted &lt;A href="http://windowsclient.net/downloads/folders/wpfsamples/entry3756.aspx" target=_blank mce_href="http://windowsclient.net/downloads/folders/wpfsamples/entry3756.aspx"&gt;the source code&lt;/A&gt; -- there are some good nuggets in here worth exploring.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://scorbs.com/workapps/woodgrove/FinanceApplication.xbap" border="0"&gt;&lt;IMG border=0 src="http://static.flickr.com/54/167900350_9c83993e0d_m.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://scorbs.com/workapps/woodgrove/FinanceApplication.xbap" target=_blank mce_href="http://scorbs.com/workapps/woodgrove/FinanceApplication.xbap"&gt;Click Here&amp;nbsp;To Run It&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Using The Finance Application&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The application provides a 3D visualization into a hypothetical, static porfolio. It is important to note that this application is not bound to live data.&amp;nbsp; To the left is a 2D list of stocks, grouped by Small Cap, Mid Cap and Large Cap stocks.&amp;nbsp; By clicking on a stock in this list, detailed information about the stock can be seen in the far right column.&amp;nbsp; If you hover over the 2D stock chart, it will expand for an easier reading experience.&lt;/P&gt;
&lt;P&gt;Hovering over a stock will group it with other stocks of the same sector within that market size.&amp;nbsp; For example, hovering over ArvinMeritor will also highlight Men's Wearhouse, both part of the consumer segment.&amp;nbsp; This becomes interesting in terms of the 3D chart, in the center of the application.&amp;nbsp; You can see how the labels for the X and Y axis update when different stocks are hovered over.&amp;nbsp; The hover action pinpoints that particular grouping of sector and market cap, aggregating the results.&amp;nbsp; So, one can immediately get a sense of how Mid Cap stocks in the consumer sector are doing -- in this case, not well, as can seen from the long red bar. &lt;/P&gt;
&lt;P&gt;The application is two way, in that you can also interact with the 3D bar chart and see the corresponding 2D areas become highlighted.&amp;nbsp; If you leave the mouse over a given bar for 1 second, you will get information about that bar as well, letting you know what aggregate of stocks that bar represents as well as the market cap and sector.&lt;/P&gt;
&lt;P&gt;If you click on the the Woodgrove logo, the 2D section will animate away, allowing you to focus on the 3D.&amp;nbsp; Holding the right click button down of the mouse will allow you to trackball the graph.&amp;nbsp; In addition, you can compare stocks against the DJIA if you click that button.&amp;nbsp; (The other comparison buttons aren't wired up.)&amp;nbsp; If you then move the slider, you will see an animation between the current data and a date in the past. &lt;/P&gt;
&lt;P&gt;Lastly, by switching in the drop down from Day % Change to Dollar change, the bars turn to columns.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;Decomposing The Finance Application&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;While all of the data is static, the application is designed to support databinding to live data and could be done with a nominal amount of effort.&amp;nbsp; Right now, everything is databound to the static equity.xml file.&amp;nbsp; However, changing the databinding to a webservice would allow for this application to show real data.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You'll notice that the project is factored into multiple components.&amp;nbsp; The WoodgroveFinanceApplication doesn't really do anything but hold the WoodgroveFinanceHost, which sets up the layout and handles the interaction between the 2D and the 3D.&amp;nbsp; The WoodgroveFinanceStockChartFrame then holds the 2D pieces and the WoodgroveFinanceStockChart3D holds the 3D pieces. By doing this componentization, all of the functionality is really contained in controls, such that they can be added to a different project quite easily.&amp;nbsp; If just the 3D section were desired, it is already isolated from the rest of the application.&lt;/P&gt;
&lt;P&gt;You can open the project in Expression Blend, which is very cool.&amp;nbsp; One could customize the look and feel from within Blend.&amp;nbsp; It also demonstrates how Expression Blend supports opening .sln files and working with multiple projects.&lt;/P&gt;
&lt;P&gt;Lastly, it is worth commenting that the 3D graph is based on work done by Robert Hogue (&lt;A href="http://www.therhogue.com/WinFX/" mce_href="http://www.therhogue.com/WinFX/"&gt;http://www.therhogue.com/WinFX/&lt;/A&gt;).&amp;nbsp; Some of the explanation in his download pack is germaine to the code in the 3D part of the application.&lt;/P&gt;
&lt;P&gt;Enjoy! &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1214472" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/3D/default.aspx">3D</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Required Reading: Optimizing WPF Application Performance</title><link>http://blogs.msdn.com/karstenj/archive/2006/11/29/required-reading-optimizing-wpf-application-performance.aspx</link><pubDate>Wed, 29 Nov 2006 22:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1173509</guid><dc:creator>karstenj</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1173509.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1173509</wfw:commentRss><description>If you are a WPF developer, you must read &lt;A class="" href="http://msdn2.microsoft.com/en-gb/library/aa970683.aspx" mce_href="http://msdn2.microsoft.com/en-gb/library/aa970683.aspx"&gt;Optimizing WPF Application Performance&lt;/A&gt;.&amp;nbsp; It is chockful of tips, tricks and information about the inner workings of WPF. I've read it multiple times and I always learn something new.&amp;nbsp; It is a glimse into the WPF source code, which you are building on top of whenever you build a WPF application.&amp;nbsp; With a platform as vast as WPF which does so much on your behalf, you need to understand in fact what it is doing&amp;nbsp; and how it is doing it. Don't read this paper before you've hit the curve, but once you have your bearings with WPF, you &lt;EM&gt;have &lt;/EM&gt;to read it.&amp;nbsp; Twice. Or more.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1173509" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Plumbing the SDK Samples and Unearthing More About Doing Per Frame Animation </title><link>http://blogs.msdn.com/karstenj/archive/2006/11/22/plumbing-the-sdk-samples-and-unearthing-more-about-doing-per-frame-animation.aspx</link><pubDate>Thu, 23 Nov 2006 02:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1124867</guid><dc:creator>karstenj</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1124867.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1124867</wfw:commentRss><description>&lt;P&gt;There is a very cool sample buried deeply in the SDK called &lt;A class="" href="http://msdn2.microsoft.com/en-gb/library/ms771738.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-gb/library/ms771738.aspx"&gt;Per Frame Animation&lt;/A&gt;&amp;nbsp;that has some very clever and useful code in it.&amp;nbsp; I recently was revisiting the sample and realized that there is a lot going on in the sample that may not at first be apparent.&amp;nbsp; As such, I decided to isolate just the firework effects part of the sample and put some more UI around it so that people could tweak the settings and see what is possible visually.&amp;nbsp; Here's the &lt;A class="" href="http://wpf.netfx3.com/direct/effects/effects.xbap" mce_href="http://wpf.netfx3.com/direct/effects/effects.xbap"&gt;result&lt;/A&gt; - you can click the image to run it and &lt;A class="" href="http://winfx.members.winisp.net/files/effects.zip" mce_href="http://winfx.members.winisp.net/files/effects.zip"&gt;download the source&lt;/A&gt; as well.&amp;nbsp; If you hover or click the blue cross on the right, you will see the effect.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://wpf.netfx3.com/direct/effects/effects.xbap" target=_blank mce_href="http://wpf.netfx3.com/direct/effects/effects.xbap"&gt;&lt;IMG src="http://winfx.members.winisp.net/images/effects.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you look at the burst on the right, you'll get&amp;nbsp;a sense for what the application does, although it is of course much prettier if you actually see it in action.&amp;nbsp; You can play with animating other visuals, including any geometry, text, etc.&amp;nbsp; You can also play around with the effect using the sliders and other toggles on the left. I borrowed &lt;A class="" href="http://blogs.msdn.com/ebooth" mce_href="http://blogs.msdn.com/ebooth"&gt;Ernie Booth's&lt;/A&gt; color picker that he posted&lt;A class="" href="http://wpf.netfx3.com/files/folders/applications/entry3801.aspx" mce_href="http://wpf.netfx3.com/files/folders/applications/entry3801.aspx"&gt; in this sample&lt;/A&gt; and I used Expression Interactive Designer to create the layout, playing around with styling and databinding.&lt;/P&gt;
&lt;P&gt;So, what is going on here?&amp;nbsp;&amp;nbsp;The crux is this line&amp;nbsp;477 in the page1.xaml file:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;lt;ae:FireworkEffect x:Name="theEffect"&amp;nbsp; &amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;Button Style="{DynamicResource ButtonStyle1}" Width="100" Height="100" Content="Button"/&amp;gt;&lt;BR&gt;&amp;lt;/ae:FireworkEffect&amp;gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;The button is wrapped in a &lt;STRONG&gt;FireworkEffect&lt;/STRONG&gt; class. Now, if you dig into the &lt;STRONG&gt;FireworkEffect&lt;/STRONG&gt; class, you'll see that it derives from &lt;STRONG&gt;OverlayRenderDecorator&lt;/STRONG&gt;, which a custom &lt;STRONG&gt;FrameworkElement&lt;/STRONG&gt; whose sole purpose is to overlay graphics on top of any UI element. It is quite clever what is going on in this class, because the &lt;STRONG&gt;OverlayRenderDecorator&lt;/STRONG&gt; has two visual children &lt;EM&gt;but only one logical child&lt;/EM&gt;. The first child, which is both a visual child and a logical child, is whatever is the child of the element, in this case a button.&amp;nbsp; The second visual child is a &lt;STRONG&gt;OverlayRenderDecoratorOverlayVisual&lt;/STRONG&gt;, which is another custom class that derives from &lt;STRONG&gt;DrawingVisual&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp;This second child doesn't participate in layout, hittesting or any of the&amp;nbsp;other behaviors native to logical children.&amp;nbsp; But, it does get to display UI.&amp;nbsp; When and how, you might ask?&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is where&amp;nbsp;another moment of cleverness comes in: the&amp;nbsp;&lt;STRONG&gt;OverlayRenderDecorator&lt;/STRONG&gt; declares its own virtual method, &lt;STRONG&gt;OnOverlayRender&lt;/STRONG&gt;, which it calls after &lt;STRONG&gt;Arrange&lt;/STRONG&gt; has been called in&amp;nbsp;its &lt;STRONG&gt;ArrangeOverride&lt;/STRONG&gt; override.&amp;nbsp;&amp;nbsp;&amp;nbsp;But, how is&amp;nbsp;the derived type&amp;nbsp;allowed&amp;nbsp;to do its work?&amp;nbsp; Well, remember,&amp;nbsp;the second visual child, buried inside the &lt;STRONG&gt;OverlayRenderDecorator&lt;/STRONG&gt;, is&amp;nbsp;derived from &lt;STRONG&gt;DrawingVisual&lt;/STRONG&gt;, so it can pass its drawing context, to the derived class, as follows:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;using (DrawingContext dc = _overlayVisual.RenderOpen())&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //delegate to derived types&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnOverlayRender(dc);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This means that &lt;STRONG&gt;OnOverlayRender&lt;/STRONG&gt; gets called after the logical children have been painted during &lt;STRONG&gt;OnRender&lt;/STRONG&gt;, which is where WPF graphics are typically painted. This is real real handy because it can do per frame animations that don't affect layout, hittesting, input or anything else. &lt;/P&gt;
&lt;P&gt;I modified the code in the &lt;STRONG&gt;FireworkEffect&lt;/STRONG&gt; implementation of &lt;STRONG&gt;OnOverlayRender&lt;/STRONG&gt; from the SDK to show off the ability to create some other effects. One that is kind of interesting is the &lt;STRONG&gt;DrawDrawing&lt;/STRONG&gt; call, because you can pass any resource you have to it, which might be created by a designer in a tool such as Illustrator, Studio MX or Expression.&amp;nbsp;&amp;nbsp;&amp;nbsp; At first, I was thrown off by how to use &lt;STRONG&gt;DrawDrawing &lt;/STRONG&gt;because, unlike other calls such as &lt;STRONG&gt;DrawGeometry&lt;/STRONG&gt;, &lt;STRONG&gt;DrawEllipse&lt;/STRONG&gt;, &lt;STRONG&gt;DrawImage&lt;/STRONG&gt;&amp;nbsp;or &lt;STRONG&gt;DrawText&lt;/STRONG&gt;, there was no way to pass a point where the drawing is to take place.&amp;nbsp; Because the whole animation effect is created by updating where the drawing takes place, this was problematic.&amp;nbsp; I then realized that I could push a &lt;STRONG&gt;TranslateTransform&lt;/STRONG&gt; to the &lt;STRONG&gt;DrawDrawing&lt;/STRONG&gt; and acheive the same effect, as follows:&lt;/P&gt;
&lt;P&gt;case "Drawing":&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GeometryDrawing gd = (GeometryDrawing)this.FindResource("d");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawingContext.PushTransform(new TranslateTransform(p.Location.X, p.Location.Y));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawingContext.DrawDrawing(gd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drawingContext.Pop();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;
&lt;P&gt;If you want to try some other effects with the code, it is in the &lt;STRONG&gt;OnOverlayRender&lt;/STRONG&gt; method of the &lt;STRONG&gt;FireworkEffect&lt;/STRONG&gt; class where you would do it.&lt;/P&gt;
&lt;P&gt;Another curious thing about the sample is that you'll notice that the &lt;STRONG&gt;CompositionTarget.Rendering&lt;/STRONG&gt; doesn't do any UI work inside of it.&amp;nbsp; All of the painting, as it were, is done by the &lt;STRONG&gt;OnOverlayRender&lt;/STRONG&gt; method.&amp;nbsp; So, what is the point of &lt;STRONG&gt;CompositionTarget.Rendering&lt;/STRONG&gt;?&amp;nbsp; Well, it is used to create the physics effects and keep track of frame/time ratio.&amp;nbsp; Each particle in the effect is updated in the CompositionTarget.Rendering callback method, passing a delta time.&lt;/P&gt;
&lt;P&gt;One final comment: I used the &lt;A class="" href="http://wpf.netfx3.com/files/folders/developer/entry5612.aspx" mce_href="http://wpf.netfx3.com/files/folders/developer/entry5612.aspx"&gt;Flexible Application Template&lt;/A&gt; for the project so that I could easily toggle whether it is deployed as an XBAP or a Windows Application.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://winfx.members.winisp.net/files/effects.zip" mce_href="http://winfx.members.winisp.net/files/effects.zip"&gt;download the source&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1124867" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Mike Swanson Is The Man: Flash to WPF Converter Posted</title><link>http://blogs.msdn.com/karstenj/archive/2006/11/21/mike-swanson-is-the-man-flash-to-wpf-converter-posted.aspx</link><pubDate>Tue, 21 Nov 2006 21:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1116436</guid><dc:creator>karstenj</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1116436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1116436</wfw:commentRss><description>&lt;P&gt;Mike Swanson, a hero already for his Illustrator to XAML converter, has posted a Thanksgiving gift: a &lt;A class="" href="http://www.mikeswanson.com/swf2xaml/" target=_blank mce_href="http://www.mikeswanson.com/swf2xaml/"&gt;SWF to XAML converter&lt;/A&gt;.&amp;nbsp; I just &lt;A class="" href="http://channel9.msdn.com/Showpost.aspx?postid=259460" target=_blank mce_href="http://channel9.msdn.com/Showpost.aspx?postid=259460"&gt;interviewed him for Channel 9&lt;/A&gt;, in which he shows some demos and spills the beans on how he did it.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1116436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>.NET 3.0 Shipped and MIX07 Announced: What Better Way To Celebrate Than With A Cool WPF App From ReMIX Japan?</title><link>http://blogs.msdn.com/karstenj/archive/2006/11/08/net-3-0-shipped-and-mix07-announced-what-better-way-to-celebrate-than-with-a-cool-wpf-app-from-remix-japan.aspx</link><pubDate>Wed, 08 Nov 2006 21:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1038513</guid><dc:creator>karstenj</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/1038513.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=1038513</wfw:commentRss><description>&lt;P&gt;So, if you haven't heard the news, &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en"&gt;.NET 3.0&lt;/A&gt; shipped along with the &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C2B1E300-F358-4523-B479-F53D234CDCCF&amp;amp;displaylang=en"&gt;SDK&lt;/A&gt;!&amp;nbsp; The&amp;nbsp;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;amp;displaylang=en"&gt;Visual Studio Extensions&lt;/A&gt; aren't official yet, but they are looking better with every build. And, in addition, &lt;A class="" href="http://www.visitmix.com/" mce_href="http://www.visitmix.com/"&gt;MIX07&lt;/A&gt; has&amp;nbsp;been announced.&amp;nbsp; &amp;nbsp;It wouldn't surprise me if it sold out.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;So, what better way to celebrate than checking out this media browser&amp;nbsp;done by NHK, recently demo'd at ReMIX Japan, screenshots below.&amp;nbsp; The screenshots don't do the application justice, so it is worth it to watch the &lt;A class="" href="http://www.microsoft.com/japan/seminar/remixtokyo/keynote/original/play.aspx" target=_blank mce_href="http://www.microsoft.com/japan/seminar/remixtokyo/keynote/original/play.aspx"&gt;video&lt;/A&gt;, as you'll see all kinds of nice animation interactivity, 3D, media&amp;nbsp;and more.&amp;nbsp; (To jump right to the demo in the video, select the 7th "chapter".)&amp;nbsp; There is another demo worth watching at Chapter 42 by the web agency Second Factory with TV head people (screen shots below). I can't wait to see more and more applications emerging written on top of WPF, as people get more and more creative having the shackles of earlier UI limitations lifted. &lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j2.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j3.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j4.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j6.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/j5.jpg"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1038513" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item><item><title>Healthcare Prototype Source Code Posted </title><link>http://blogs.msdn.com/karstenj/archive/2006/10/30/healthcare-prototype-source-code-posted.aspx</link><pubDate>Mon, 30 Oct 2006 21:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:904108</guid><dc:creator>karstenj</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/karstenj/comments/904108.aspx</comments><wfw:commentRss>http://blogs.msdn.com/karstenj/commentrss.aspx?PostID=904108</wfw:commentRss><description>&lt;P&gt;The healthcare prototype source code, which we have demo'ed in one way or another many times, &lt;A class="" href="http://wpf.netfx3.com/files/folders/applications/entry6608.aspx" mce_href="http://wpf.netfx3.com/files/folders/applications/entry6608.aspx"&gt;is now posted.&lt;/A&gt;&amp;nbsp;&amp;nbsp; It is&amp;nbsp;a very compelling prototype as far as how a particular vertical -- healthcare -- could take advantage of WPF.&amp;nbsp; Perhaps most interesting is its different techniques for doing data visualization, including some clever 3D work, which you can see from the screen shot below, as well as some nice video manipulation.&amp;nbsp; This app is probably one of the more complete samples with source code available on WPF that exists.&amp;nbsp; The download also includes a script on how to demo it as well as a decomposition of how it takes advantage of WPF, walking through feature by feature. Check it out!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://winfx.members.winisp.net/images/healthcareapp.png" img &lt;&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=904108" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/karstenj/archive/tags/Windows+Presentation+Foundation+_2800_Avalon_2900_/default.aspx">Windows Presentation Foundation (Avalon)</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/karstenj/archive/tags/Avalon/default.aspx">Avalon</category></item></channel></rss>