<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Blog</title><link>http://www.microdivision.com:80/blog</link><description>Blog</description><item><title>What's the difference between the ItemsSource and DataContext properties</title><link>http://www.microdivision.com:80/blog/what-rsquo-s-the-difference-between-the-itemssource-and-datacontext-properties</link><description>&lt;p&gt;When&amp;nbsp;I started silverlight (not long ago) I had a question that really bothered me: What's the difference between the ItemsSource and DataContext property of a list box. When I searched around, I found answers that go along the line of: a DataContext is typically used for...whatever... and ItemsSource is used for ... whatever... but when O read those explanations I still wasn't happy, something was still bothering me, it still wasn't clear to me "when" do I set a "Data"Context" and "when" do I set the ItemSource instead. So as usual, if you didn't get the answer right, you didn't ask the question right.&lt;/p&gt;
&lt;p&gt;So here is my attempt to answer this question - while I'm teaching you how to ask the same question differently (like a detective) - you should really ask: When is it that, if I set the DataContext I won't get the same results as setting the ItemSource or vise versa. And as the Talmud states "Within a question from the wise lies half the answer". This will lead you right to the answer&amp;hellip;&lt;/p&gt;
&lt;p&gt;&amp;hellip;If you bind a Person list to the DataContext of your list, your list will still not be populated, just as if you bind the name property of a person object to the DataContext of a textbox it won't display the name.&amp;nbsp; ItemsSource is to a ListBox as the text property is to a TextBox, It tells the binding system to fill the items with all of the items in that list, which datacontext does't do. A DataContext by itself never displays or generates any UI content.&lt;/p&gt;
&lt;p&gt;Now that&amp;nbsp;I explained to you what ItemSource does, you can go back and read all the other posts that try to answer this question by explaining what the DataContext typically does...&lt;/p&gt;</description><pubDate>Mon, 30 May 2011 02:29:31 GMT</pubDate><guid isPermaLink="true">http://www.microdivision.com:80/blog/what-rsquo-s-the-difference-between-the-itemssource-and-datacontext-properties</guid></item><item><title>Animating Thickness and Margin Properties in Silverlight</title><link>http://www.microdivision.com:80/blog/animating-thickness-and-margin-properties-in-silverlight</link><description>&lt;p&gt;This is just an update to &lt;a href="http://blogs.msdn.com/b/blemmon/archive/2009/03/18/animating-margins-in-silverlight.aspx" target="_blank"&gt;Ben Lemmon's solution&amp;nbsp;&lt;/a&gt;his solution only explains how to do it from code, i changed the code so its possible to set it up using xaml.&lt;/p&gt;
&lt;pre class="brush:csharp;"&gt;using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Custom.Animations
{
    public class ThicknessAnimationX
    {
        public static readonly DependencyProperty ElementProperty = DependencyProperty.RegisterAttached("Element", typeof(DependencyObject), typeof(DoubleAnimation), new PropertyMetadata(new PropertyChangedCallback(OnElementPropertyChanged)));

        // The time along the animation from 0-1
        public static DependencyProperty TimeProperty = DependencyProperty.RegisterAttached("Time", typeof(double), typeof(DoubleAnimation), new PropertyMetadata(OnTimeChanged));

        // The object being animated
        public static DependencyProperty TargetProperty = DependencyProperty.RegisterAttached("Target", typeof(DependencyObject), typeof(ThicknessAnimationX), null);
        public static DependencyProperty TargetPropertyProperty = DependencyProperty.RegisterAttached("TargetProperty", typeof(DependencyProperty), typeof(DependencyObject), null);

        public static readonly DependencyProperty FromProperty = DependencyProperty.RegisterAttached("From", typeof(Thickness), typeof(DoubleAnimation), null);
        public static readonly DependencyProperty ToProperty = DependencyProperty.RegisterAttached("To", typeof(Thickness), typeof(DoubleAnimation), null);

        public static void SetElement(DependencyObject o, DependencyObject value)
        {
            o.SetValue(ElementProperty, value);
        }

        public static DependencyObject GetElement(DependencyObject o)
        {
            return (DependencyObject)o.GetValue(ElementProperty);
        }

        private static void OnElementPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue != null)
            {
                DoubleAnimation doubleAnimation = (DoubleAnimation)d;

                doubleAnimation.SetValue(TargetProperty, e.NewValue);
                doubleAnimation.From = 0;
                doubleAnimation.To = 1;
                doubleAnimation.SetValue(TargetPropertyProperty, FrameworkElement.MarginProperty);
                Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(ThicknessAnimationX.Time)"));
                Storyboard.SetTarget(doubleAnimation, doubleAnimation);
            }
        }
  

        private static void OnTimeChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            DoubleAnimation animation = (DoubleAnimation)sender;
            double time = GetTime(animation);
            Thickness from = (Thickness)sender.GetValue(FromProperty);
            Thickness to = (Thickness)sender.GetValue(ToProperty);
            DependencyProperty targetProperty = (DependencyProperty)sender.GetValue(TargetPropertyProperty);
            DependencyObject target = (DependencyObject)sender.GetValue(TargetProperty);
            target.SetValue(targetProperty, new Thickness((to.Left - from.Left) * time + from.Left,
                                                          (to.Top - from.Top) * time + from.Top,
                                                          (to.Right - from.Right) * time + from.Right,
                                                          (to.Bottom - from.Bottom) * time + from.Bottom));
        }

        public static double GetTime(DoubleAnimation animation)
        {
            return (double)animation.GetValue(TimeProperty);
        }

        public static void SetTime(DoubleAnimation animation, double value)
        {
            animation.SetValue(TimeProperty, value);
        }

        public static Thickness GetFrom(DoubleAnimation animation)
        {
            return (Thickness)animation.GetValue(FromProperty);
        }

        public static void SetFrom(DoubleAnimation animation, Thickness value)
        {
            animation.SetValue(FromProperty, value);
        }

        public static Thickness GetTo(DoubleAnimation animation)
        {
            return (Thickness)animation.GetValue(ToProperty);
        }

        public static void SetTo(DoubleAnimation animation, Thickness value)
        {
            animation.SetValue(ToProperty, value);
        }
    }   
}&lt;/pre&gt;
&lt;p&gt;And then you can do this in XAML&lt;/p&gt;
&lt;pre class="brush:xml"&gt;    	&amp;lt;VisualStateManager.VisualStateGroups&amp;gt;
    		&amp;lt;VisualStateGroup x:Name="Positions"&amp;gt;
    			&amp;lt;VisualStateGroup.Transitions&amp;gt;
    				&amp;lt;VisualTransition GeneratedDuration="0:0:0.2"/&amp;gt;
    			&amp;lt;/VisualStateGroup.Transitions&amp;gt;
                &amp;lt;VisualState x:Name="Left"&amp;gt;                    
                	&amp;lt;Storyboard&amp;gt;
                        &amp;lt;DoubleAnimation Duration="0:0:0.3" Custom:ThicknessAnimationX.To="0,0,0,0" Custom:ThicknessAnimationX.Element="{Binding ElementName=rectangle1}" /&amp;gt;&lt;br /&gt;                	&amp;lt;/Storyboard&amp;gt;                    	
                &amp;lt;/VisualState&amp;gt;
                &amp;lt;VisualState x:Name="Right"&amp;gt;                    
                	&amp;lt;Storyboard&amp;gt;
                        &amp;lt;DoubleAnimation Duration="0:0:0.3" Custom:ThicknessAnimationX.To="0,200,0,0" Custom:ThicknessAnimationX.Element="{Binding ElementName=rectangle1}" /&amp;gt;&lt;br /&gt;                    &amp;lt;/Storyboard&amp;gt;                    
                &amp;lt;/VisualState&amp;gt;
    		&amp;lt;/VisualStateGroup&amp;gt;
    	&amp;lt;/VisualStateManager.VisualStateGroups&amp;gt;&lt;/pre&gt;
&lt;p&gt;Note that if you don't set a Target property to a DoubleAnimation in XML, you won't be able to display the control/page in Blend. To fix this, just add a fake target property, it will be overriden at runtime anyway&lt;/p&gt;
&lt;pre class="brush:xml"&gt;    	&amp;lt;VisualStateManager.VisualStateGroups&amp;gt;
    		&amp;lt;VisualStateGroup x:Name="Positions"&amp;gt;
    			&amp;lt;VisualStateGroup.Transitions&amp;gt;
    				&amp;lt;VisualTransition GeneratedDuration="0:0:0.2"/&amp;gt;
    			&amp;lt;/VisualStateGroup.Transitions&amp;gt;
                &amp;lt;VisualState x:Name="Left"&amp;gt;                    
                	&amp;lt;Storyboard&amp;gt;
                        &amp;lt;DoubleAnimation Duration="0:0:0.3" Custom:ThicknessAnimationX.To="0,0,0,0" Custom:ThicknessAnimationX.Element="{Binding ElementName=rectangle1}" Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="Opacity" /&amp;gt;&lt;br /&gt;                	&amp;lt;/Storyboard&amp;gt;                    	
                &amp;lt;/VisualState&amp;gt;
                &amp;lt;VisualState x:Name="Right"&amp;gt;                    
                	&amp;lt;Storyboard&amp;gt;
                        &amp;lt;DoubleAnimation Duration="0:0:0.3" Custom:ThicknessAnimationX.To="0,200,0,0" Custom:ThicknessAnimationX.Element="{Binding ElementName=rectangle1}" Storyboard.TargetName="rectangle1" Storyboard.TargetProperty="Opacity" /&amp;gt;&lt;br /&gt;                    &amp;lt;/Storyboard&amp;gt;                    
                &amp;lt;/VisualState&amp;gt;
    		&amp;lt;/VisualStateGroup&amp;gt;
    	&amp;lt;/VisualStateManager.VisualStateGroups&amp;gt;
&lt;/pre&gt;</description><pubDate>Fri, 27 May 2011 05:42:04 GMT</pubDate><guid isPermaLink="true">http://www.microdivision.com:80/blog/animating-thickness-and-margin-properties-in-silverlight</guid></item><item><title>We can do better than Hash-Bangs</title><link>http://www.microdivision.com:80/blog/we-can-do-better-than-hashbangs</link><description>&lt;p&gt;I have read these two articles complaining about the new style of using hashbangs #! as links. &lt;a href="http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch" target="_blank"&gt;http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch&lt;/a&gt;&amp;nbsp; &lt;a href="http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs" target="_blank"&gt;http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs&lt;/a&gt;, If you don't know what i mean by&amp;nbsp; hash-bangs, visit any profile on twitter, then look at the address bar of your browser, what do you see? Well, here is what the address of my profile looks like on twitter http://twitter.com/#!/shrage. Notice the #!? &lt;/p&gt; &lt;p&gt;My argument is, don't blame website developers for abusing the technology given to them, after all, isn't this is what we ask them to do daily just to make a single webpage work in all browsers? Instead, we should take browser developers up to task and demand support for propar ajax/plugin/clientside navigation capabilities. &lt;/p&gt; &lt;p&gt;So here is my proposal to browser developers, but first a scenario. We have a single page www.site.com/index.html which needs to be able to display a profile page using a url like www.site.com/profile/101. The way browsers work currently, we have two problems at hand. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problem #1&lt;/strong&gt; -&amp;nbsp; When you click on any link from inside the domain, the browser will make a new request to the server which will result in a page refresh. This needs to be changed to allow the developer to cancel navigation requests at his/her choosing (obviously for security reasons the developer should be able to cancal only requests from the current domain)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problem #2&lt;/strong&gt; - If an outside website links to the profile above www.site.com/profile/101, the browser doesn't even know to load index.html at all. The browser will make a request straight for www.site.com/profile/101 which is not what the developer has designed the site for. so we need to give the developer a way to indicate to the browser that every request to profile/101 should be handled by index.html. This can be&amp;nbsp; handled by introducing another 3xx http status code, ex: 309 which will be a special redirect response that tells the browser to handle this request in javascript at the specified location.&lt;/p&gt; &lt;p&gt;So here is example example javascript code at index.html&lt;/p&gt; &lt;p&gt;&lt;strong&gt;[Index.html]&lt;/strong&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;   &lt;span class="rem"&gt;// This even fires when a user clicks on any link within this page, or, if this page is loaded as a result of a 309 response&lt;/span&gt;
    window.onNavigate(function(e){
        &lt;span class="rem"&gt;// e.location == location clicked too, or original location of the redirect&lt;/span&gt;
        &lt;span class="kwrd"&gt;if&lt;/span&gt;(e.location.indexOf(&lt;span class="str"&gt;'Profile'&lt;/span&gt;) == 0){
            e.cancel;
            var id = extractIdFrom(e.location);
            LoadProfile(id)
        });
    }&lt;/pre&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;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;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;strong&gt;[Server]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On the server, the developer can write a rule to redirect request to www.website.com/Profile/id with Response Code = 309 and Location = Index.html&lt;/p&gt;
&lt;p&gt;Once browsers supports this navigation hook, we can build a clientside framework on top of it, that will extract parameters from the new location url and map them to functions on the client just as server side routing and mvc frameworks do.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="routes.js"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;pre class="csharpcode"&gt;    
    &lt;span class="rem"&gt;// Registers a route to the function LoadProfile, extracting the id from the url and providing it as a function argument.&lt;/span&gt;
    routes.registerRoute(&lt;span class="str"&gt;"/Profile/{id}"&lt;/span&gt;, LoadProfile);
    &lt;span class="kwrd"&gt;function&lt;/span&gt; LoadProfile(id){
        $.ajax(...);
    }
&lt;/pre&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;</description><pubDate>Thu, 28 Apr 2011 22:50:43 GMT</pubDate><guid isPermaLink="true">http://www.microdivision.com:80/blog/we-can-do-better-than-hashbangs</guid></item><item><title>Strange Silverlight Behavior</title><link>http://www.microdivision.com:80/blog/Strange-Silverlight-Behavior</link><description>&lt;p&gt;Here is a simple animation i wrote in silverlight&lt;/p&gt;
&lt;pre class="brush:xml"&gt;&amp;lt;UserControl
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
	x:Class="BouncingBall.MainPage"
	Width="640" Height="480"&amp;gt;
	&amp;lt;UserControl.Resources&amp;gt;
		&amp;lt;Storyboard x:Name="Bounce" RepeatBehavior="Forever" AutoReverse="True"&amp;gt;
			&amp;lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="Ball"&amp;gt;
				&amp;lt;EasingDoubleKeyFrame KeyTime="0" Value="0"/&amp;gt;
				&amp;lt;SplineDoubleKeyFrame KeyTime="0:0:1" Value="-144" KeySpline="0,1,1,1"/&amp;gt;
			&amp;lt;/DoubleAnimationUsingKeyFrames&amp;gt;
		&amp;lt;/Storyboard&amp;gt;
	&amp;lt;/UserControl.Resources&amp;gt;

	&amp;lt;i:Interaction.Triggers&amp;gt;
		&amp;lt;i:EventTrigger&amp;gt;
			&amp;lt;ei:ControlStoryboardAction Storyboard="{StaticResource Bounce}"/&amp;gt;
		&amp;lt;/i:EventTrigger&amp;gt;
	&amp;lt;/i:Interaction.Triggers&amp;gt;

	&amp;lt;Canvas x:Name="LayoutRoot" Background="#FFCADFFF"&amp;gt;
		&amp;lt;Ellipse x:Name="Ball" Stroke="Black" Width="100" Height="100" Fill="#FFF31D1D" Canvas.Top="190" Canvas.Left="0"&amp;gt;
			&amp;lt;Ellipse.RenderTransform&amp;gt;
				&amp;lt;CompositeTransform/&amp;gt;
			&amp;lt;/Ellipse.RenderTransform&amp;gt;
		&amp;lt;/Ellipse&amp;gt;
	&amp;lt;/Canvas&amp;gt;

&amp;lt;/UserControl&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Notice that when the ball goes downward the bottom of the ball is flat/chopped, and when the ball goes upwards the top of the ball is flat/chopped off, any idea?&lt;/p&gt;
&lt;p&gt;
&lt;object width="400" height="300" type="application/x-silverlight-2"&gt;
&lt;param name="source" value="/Media/Default/Silverlight/BouncingBall.xap" /&gt;
&lt;param name="background" value="white" /&gt;
&lt;param name="minRuntimeVersion" value="3.0.40723.0" /&gt;
&lt;param name="autoupgrade" value="true" /&gt;
&lt;param name="enableHtmlAccess" value="true" /&gt;&lt;a style="text-decoration: none;" href="http://go.microsoft.com/fwlink/?LinkID=149156"&gt;&lt;img style="border-style: none; width: 400px; height: 200px;" src="http://storage.timheuer.com/sl4wp-ph.png" alt="Install Microsoft Silverlight" /&gt;&lt;/a&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;Slow motion recording of what i see on my screen (&lt;a href="http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;amp;lc=en&amp;amp;dlc=en&amp;amp;product=3884707"&gt;HP 2159m&lt;/a&gt;) Notice the ball gets flat at the bottom when it goes downward&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" width="480" height="390" src="http://www.youtube.com/v/M1P9q_IQDdE?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/embed&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I added enable hardware acceleration and it fixed the problem.&lt;/p&gt;
&lt;pre class="brush:xml"&gt;&lt;object width="400" height="300" type="application/x-silverlight-2"&gt;
&lt;param name="source" value="http://www.microdivision.com/wp-content/uploads/2011/03/BouncingBall.xap" /&gt;
&lt;param name="background" value="white" /&gt;
&lt;param name="minRuntimeVersion" value="3.0.40723.0" /&gt;
&lt;param name="autoupgrade" value="true" /&gt;
&lt;param name="enableHtmlAccess" value="true" /&gt;
&lt;param name="EnableGPUAcceleration" value="true" /&gt;
&lt;a style="text-decoration: none;" href="http://go.microsoft.com/fwlink/?LinkID=149156"&gt;
&lt;img style="border-style: none; width: 400px; height: 200px;" src="http://storage.timheuer.com/sl4wp-ph.png" alt="Install Microsoft Silverlight" /&gt;&lt;/a&gt;
&lt;/object&gt;
&lt;/pre&gt;
&lt;p&gt;
&lt;object width="400" height="300" type="application/x-silverlight-2"&gt;
&lt;param name="source" value="http://www.microdivision.com/wp-content/uploads/2011/03/BouncingBall.xap" /&gt;
&lt;param name="background" value="white" /&gt;
&lt;param name="minRuntimeVersion" value="3.0.40723.0" /&gt;
&lt;param name="autoupgrade" value="true" /&gt;
&lt;param name="enableHtmlAccess" value="true" /&gt;
&lt;param name="EnableGPUAcceleration" value="true" /&gt; &lt;a style="text-decoration: none;" href="http://go.microsoft.com/fwlink/?LinkID=149156"&gt; &lt;img style="border-style: none; width: 400px; height: 200px;" src="http://storage.timheuer.com/sl4wp-ph.png" alt="Install Microsoft Silverlight" /&gt;&lt;/a&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Conversation about this issue on stackoverflow.com:&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/5423288/why-does-the-ball-in-this-animation-look-chopped-when-it-changes-position"&gt;http://stackoverflow.com/questions/5423288/why-does-the-ball-in-this-animation-look-chopped-when-it-changes-position&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 28 Apr 2011 04:38:50 GMT</pubDate><guid isPermaLink="true">http://www.microdivision.com:80/blog/Strange-Silverlight-Behavior</guid></item></channel></rss>
