<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.wintellect.com/CS/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>Steve Porter's Blog</title><link>http://www.wintellect.com/CS/blogs/sporter/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>ASP.NET 3.5 Extensions</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/12/10/asp-net-3-5-extensions.aspx</link><pubDate>Mon, 10 Dec 2007 04:01:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4767</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4767.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4767</wfw:commentRss><description>The preview is available for download &lt;A class="" title="ASP.NET Extensions Download" href="http://asp.net/downloads/3.5-extensions/" target=_blank&gt;here&lt;/A&gt;.&amp;nbsp; This includes the much awaited MVC support that &lt;A class="" title="Scott Guthrie's Blog" href="http://weblogs.asp.net/scottgu/default.aspx" target=_blank&gt;Scott&lt;/A&gt; has been recently blogging about.&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4767" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Right Click event in Silverlight 1.1/2.0</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/12/09/right-click-event-in-silverlight-1-1-2-0.aspx</link><pubDate>Sun, 09 Dec 2007 22:28:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4761</guid><dc:creator>sporter</dc:creator><slash:comments>1</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4761.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4761</wfw:commentRss><description>&lt;P&gt;There are many mouse events raised in Silverlight 1.1/2.0, but you will notice that right click is not one of them.&amp;nbsp; This is because by default the Silverlight plug-in hooks the right click to show information about Silverlight and update settings.&amp;nbsp; So what do you do if you have a feature such as a context menu that relies on the right click event?&amp;nbsp; Don't fret, JavaScript interaction with managed code comes to the rescue.&lt;/P&gt;
&lt;P&gt;First you&amp;nbsp;hook the right click event with your own JavaScript function.&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;function click(e) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var control = document.getElementById("SilverlightControl");&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (navigator.appName == "Netscape" &amp;amp;&amp;amp; e.which==3) &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; alert(e.clientX + " " + e.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control.Content.PageReference.RightMouseButtonDown(e.clientX, e.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (navigator.appName == "Microsoft Internet Explorer" &amp;amp;&amp;amp; event.button==2) &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; alert(event.clientX + " " + event.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control.Content.PageReference.RightMouseButtonDown(event.clientX, event.clientY); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true; &lt;BR&gt;} &lt;/P&gt;
&lt;P&gt;document.onmousedown=click &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 1. (JavaScript) Hooking right click event and passing to managed code&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;In the above code snippet you get a reference to the SilverLight plug-in and from there you can call your managed code method.&amp;nbsp; So in this case the JavaScript is calling a managed code method called RightMouseButtonDown that accepts the current mouse X and Y coordinates as input parameters.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Next you move over to managed code.&amp;nbsp; There are two steps that need to be taken for a managed code method to be called from JavaScript.&amp;nbsp; First you will need to register the class itself as callable from JavaScript.&amp;nbsp; You do this by registering the class as a scriptable endpoint and giving it a string reference name.&amp;nbsp; This code uses "PageReference" as the string reference name since the class name is "Page".&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;//Register the page class, "this", as a scriptable endpoint &lt;BR&gt;WebApplication.Current.RegisterScriptableObject("PageReference", this); &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 2. (Managed Code) Registering the page class as a scriptable endpoint&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Finally you&amp;nbsp;decorate the managed code method that is to be called from JavaScript with the [Scriptable] attribute.&amp;nbsp; Once this is done the right click event will be hooked from JavaScript and passed on or "raised" to the appropriate managed code method. &lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:courier new;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;[Scriptable] &lt;BR&gt;public void RightMouseButtonDown(int x, int y) &lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do some work here &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // such as displaying a context menu &lt;BR&gt;} &lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 3. (Managed Code) RightMouseButtonDown method decorated with [Scriptable] attribute&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;That's it!&amp;nbsp; Now you have a managed code method that will be called when the user clicks the right mouse button.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4761" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Centering and Sizing Text in Silverlight</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/10/11/centering-and-sizing-text-in-silverlight.aspx</link><pubDate>Thu, 11 Oct 2007 03:27:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4022</guid><dc:creator>sporter</dc:creator><slash:comments>1</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4022.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4022</wfw:commentRss><description>&lt;P&gt;One of the things that I find myself doing over and over in Silverlight is centering text in TextBlock objects. The majority of the time I am doing this for headers, footers, and other areas where I have a single line of text. Often I find that I also need to size text within a TextBlock appropriately for the containing space. The algorithm is the same whether you do this in Silverlight 1.0 vs. 1.1, but I will show both. In figure 1 you see the XAML that we will be working with, figure 2 shows the JavaScript needed to center the text using Silvelright 1.0, and figure 3 shows the managed C# needed to center the text using Silverlight 1.1.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;textCanvas&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Width&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;640&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"480"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;x:Name&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;CenteredText&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Text&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;This Text Should Be Centered.&lt;/SPAN&gt;" &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:red;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;640&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"480"&lt;SPAN style="COLOR:blue;"&gt; /&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR:#a31515;"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 1. XAML&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; headerText = &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.target.findName(&lt;SPAN style="COLOR:#a31515;"&gt;"CenteredText"&lt;/SPAN&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;while&lt;/SPAN&gt;(headerText.ActualWidth &amp;gt; headerText.Width) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;headerText.FontSize -= 0.5; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;}&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; newLeft = ((headerText.Width - headerText.ActualWidth) / 2)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.headerText.GetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;headerText.SetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;, newLeft);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;var&lt;/SPAN&gt; newTop = ((headerText.Height - headerText.ActualHeight) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.headerText.GetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Left"&lt;/SPAN&gt;); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;BR&gt;headerText.SetValue(&lt;SPAN style="COLOR:#a31515;"&gt;"Canvas.Top"&lt;/SPAN&gt;, newTop);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 2. Centering and sizing text in JavaScript&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;while&lt;/SPAN&gt;(CenteredText.ActualWidth &amp;gt; CenteredText.Width) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;{&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.FontSize -= 0.5; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;} &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt; newLeft = ((CenteredText.Width - CenteredText.ActualWidth) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ (&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt;)CenteredText.GetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.LeftProperty); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.SetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.LeftProperty, newLeft); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt; newTop = ((CenteredText.Height - CenteredText.ActualHeight) / 2) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;+ (&lt;SPAN style="COLOR:blue;"&gt;double&lt;/SPAN&gt;)CenteredText.GetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.TopProperty); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;CenteredText.SetValue(&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;.TopProperty, newTop);&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;Fig 3. Centering and sizing text in Managed C# &lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;First findName is called to get a reference to the TextBlock object of which you are centering the text.&amp;nbsp; This step is only required in the&amp;nbsp;1.0 version; you will already have a strongly typed reference in&amp;nbsp;1.1.&amp;nbsp; Next a while loop is executes that decreases the font size of the TextBlock object until the actual width is less than or equal to the width. Next a new left and top position is calculated and set for the TextBlock object. The text is not actually centered in the TextBlock object since there is no support for centering, instead the TextBlock object itself is moved to the appropriate left and top positions to give the illusion of being centered. &lt;/P&gt;
&lt;P&gt;In a scenario where you need to set the text property of a TextBlock repeatedly you will need to cache the initial left and top position of the object so that you have the same starting point every successive time you center the text.&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4022" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>The Silverlight 1.1 Control Base Class You Should Be Using</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/10/07/the-silverlight-1-1-control-base-class-you-should-be-using.aspx</link><pubDate>Sun, 07 Oct 2007 21:39:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:4008</guid><dc:creator>sporter</dc:creator><slash:comments>1</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/4008.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=4008</wfw:commentRss><description>&lt;P&gt;There are a couple things that I think a Silverlight control base class should be doing for you. First of all it should load up the appropriate XAML from the resource collection for you. As long as you follow the naming and association convention of Namespace.ClassName.xaml this is fairly easy to do. With just a little bit of reflection code you can get the namespace and class names to build the filename from. This will end up saving you some debug cycles when you copy/paste a control to create a new control forgetting to update the string referencing the XAML file for the new control.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;string&lt;/SPAN&gt; xamlFileName = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="COLOR:#a31515;"&gt;"{0}.{1}.xaml" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Namespace &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Name);&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;The second thing your base class should be doing for you is storing a reference to your top level Canvas object. You will then use this reference to find existing child objects such as StoryBoards, TextBlocks, or MediaElements or maybe add new controls/objects to the children collection. Whatever logic you are writing in your control, you are guaranteed to need a reference to this root object.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;BR&gt;RootCanvas = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;)&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.InitializeFromXaml(&lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;StreamReader&lt;/SPAN&gt;(s).ReadToEnd());&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;Hopefully this will help out. Below is the complete source for the base class.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;TABLE class="" style="BACKGROUND:#f2f2f2;BORDER-COLLAPSE:collapse;"&gt;



&lt;TR&gt;
&lt;TD class="" style="BORDER-RIGHT:black 0.5pt solid;PADDING-RIGHT:7px;BORDER-TOP:black 0.5pt solid;PADDING-LEFT:7px;BORDER-LEFT:black 0.5pt solid;BORDER-BOTTOM:black 0.5pt solid;"&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;CustomControlBase&lt;/SPAN&gt; : &lt;SPAN style="COLOR:#2b91af;"&gt;Control &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;{ &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt; _rootCanvas; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected&lt;/SPAN&gt; &lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt; RootCanvas &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;/SPAN&gt; { &lt;SPAN style="COLOR:blue;"&gt;return&lt;/SPAN&gt; _rootCanvas; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;/SPAN&gt; { _rootCanvas = &lt;SPAN style="COLOR:blue;"&gt;value&lt;/SPAN&gt;; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/SPAN&gt; CustomControlBase() &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;Stream&lt;/SPAN&gt; s = LoadXamlStream(); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RootCanvas = &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;SPAN style="COLOR:#2b91af;"&gt;Canvas&lt;/SPAN&gt;)&lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.InitializeFromXaml(&lt;SPAN style="COLOR:blue;"&gt;new&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;StreamReader&lt;/SPAN&gt;(s).ReadToEnd()); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected&lt;/SPAN&gt; System.IO.&lt;SPAN style="COLOR:#2b91af;"&gt;Stream&lt;/SPAN&gt; LoadXamlStream() &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&lt;/SPAN&gt; xamlFileName = &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="COLOR:#a31515;"&gt;"{0}.{1}.xaml" &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Namespace &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Name); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;this&lt;/SPAN&gt;.GetType().Assembly.GetManifestResourceStream(xamlFileName); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:Courier New;"&gt;}&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=4008" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>My Silverlight blog roll</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/09/08/my-silverlight-blog-roll.aspx</link><pubDate>Sat, 08 Sep 2007 01:27:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:3893</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/3893.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=3893</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;I am sure that I am missing a few, but this is certainly a good starting point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blog.seanalexander.com/"&gt;Addicted to Digital Media&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/bardak/default.aspx"&gt;Barak's Blog about Silverlight and beyond&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://www.mindfusioncorp.com/weblog/"&gt;Building a Better User Experience&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/astrauss/default.aspx"&gt;Come Get Some...Thoughts On Software Technology&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/delay/default.aspx"&gt;Delay's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/devdave/default.aspx"&gt;DevDave - Dave Relyea's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/eric_griffin/default.aspx"&gt;Eric Griffin's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://nerddawg.blogspot.com/"&gt;Even a chimp can write code&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://explosivedog.com/default.aspx"&gt;ExplosiveDog.Com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/gavingear/default.aspx"&gt;Gavin Gear's Tech Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/jaimer/default.aspx"&gt;Jaime Rodriguez &lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';mso-ansi-language:EN;"&gt;&lt;A href="http://www.wintellect.com/cs/blogs/jprosise/default.aspx"&gt;Jeff Prosise's Blog&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://silverlight.net/blogs/jesseliberty/default.aspx"&gt;Jesse Liberty - Silverlight Geek&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/jstegman/default.aspx"&gt;Joe Stegman's WebBlog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/webnext/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Laurence Moroney's Web.NEXT Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://weblogs.asp.net/mschwarz/default.aspx"&gt;Michael's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/mharsh/default.aspx"&gt;Mike Harsh's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/default.aspx"&gt;Mike Taulty's Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/msmossyblog/default.aspx"&gt;MS MossyBlog &lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/nickkramer/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Nick on Silverlight and WPF&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://weblogs.asp.net/scottgu/default.aspx"&gt;&lt;FONT color=#0000ff&gt;ScottGu's Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://silverlighting.blogspot.com/"&gt;&lt;FONT color=#0000ff&gt;Silver Lighting - My Silverlight Blog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/silverlight_sdk/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Silverlight SDK&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/somasegar/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Somasegar's WebLog&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://blogs.msdn.com/tims/default.aspx"&gt;&lt;FONT color=#0000ff&gt;Tim Sneath&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;A href="http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx"&gt;WynApse&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=3893" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Silverlight presentation last week in Charlotte</title><link>http://www.wintellect.com/CS/blogs/sporter/archive/2007/09/07/silverlight-presentation-last-week-in-charlotte.aspx</link><pubDate>Sat, 08 Sep 2007 00:54:00 GMT</pubDate><guid isPermaLink="false">c9b5046a-91b6-4822-a57a-d848b8cb6435:3892</guid><dc:creator>sporter</dc:creator><slash:comments>0</slash:comments><comments>http://www.wintellect.com/CS/blogs/sporter/comments/3892.aspx</comments><wfw:commentRss>http://www.wintellect.com/CS/blogs/sporter/commentrss.aspx?PostID=3892</wfw:commentRss><description>&lt;FONT face=Calibri size=3&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Keith Rome and I presented on Silverlight last week for the &lt;A href="http://www.developersguild.org/"&gt;Charlotte Developers Guild&lt;/A&gt;.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;We could not have hoped for a better crowd; by my count there were close to 80 in attendance.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The theme for the night was “Silverlight Soup to Nuts”.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I presented an overview of the features available to developers in Silverlight 1.1 including animation control, interaction with the HTML DOM, use of isolated storage, calling managed code from JavaScript, custom controls, and web service interaction.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can download the code for the talk from my recently published Silverlight article on DevX: &lt;A href="http://www.devx.com/RichInternetApps/Article/35225"&gt;Managed Code Shines in Silverlight 1.1&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Arial','sans-serif';"&gt;Keith then presented on his newest Silverlight 1.1 game, Gem Blaster.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Gem Blaster uses Keith’s next generation gaming engine building on his previous game, Popper.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;You can also go directly here to play the game: &lt;A title=http://www.mindfusioncorp.com/gemblaster/ href="http://www.mindfusioncorp.com/gemblaster/"&gt;http://www.mindfusioncorp.com/gemblaster/&lt;/A&gt;.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://www.wintellect.com/CS/aggbug.aspx?PostID=3892" width="1" height="1"&gt;</description><category domain="http://www.wintellect.com/CS/blogs/sporter/archive/tags/Silverlight/default.aspx">Silverlight</category></item></channel></rss>