<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>Nuno Filipe Godinho : .NET 3.5 SP1</title><link>http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx</link><description>Tags: .NET 3.5 SP1</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>TemplateBinding inside ControlTemplate.Triggers</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/09/01/templatebinding-inside-controltemplate-triggers.aspx</link><pubDate>Tue, 01 Sep 2009 19:03:36 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719937</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1719937</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1719937</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2009/09/01/templatebinding-inside-controltemplate-triggers.aspx#comments</comments><description>&lt;p&gt;One of the limitations of TemplateBinding Markup in WPF is the fact that we cannot use it inside the ControlTemplate.Triggers because it really doesn’t work, since as Mike Hillberg said &lt;a href="http://social.msdn.microsoft.com/forums/en-US/wpf/thread/1de3470a-1a50-4e2f-aa38-2a9a3507084a/" target="_blank"&gt;here&lt;/a&gt;, &lt;em&gt;“TemplateBinding is a lightweight, but less functional, version of a Binding with a RelativeSource of TemplatedParent.&amp;#160; One of the things that a TemplateBinding can&amp;#39;t do is work within the ControlTemplate.Triggers; TemplateBinding only works within the template content”&lt;/em&gt; .&lt;/p&gt;  &lt;p&gt;So we have this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyControl.cs&lt;/p&gt;  &lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:500px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: 	&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MyControl : Control
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2: 	{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: 		&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Boolean Selected
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5: 		{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6: 			&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (Boolean)GetValue(SelectedProperty); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7: 			&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetValue(SelectedProperty, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8: 		}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10: 		&lt;span style="color:#008000;"&gt;// Using a DependencyProperty as the backing store for Selected.  This enables animation, styling, binding, etc...&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11: 		&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; DependencyProperty SelectedProperty =
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12: 			DependencyProperty.Register(&amp;quot;&lt;span style="color:#8b0000;"&gt;Selected&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Boolean), &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(MyControl), &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UIPropertyMetadata(&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;));
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16: 		&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Brush SelectedColor
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17: 		{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: 			&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (Brush)GetValue(SelectedColorProperty); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: 			&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; { SetValue(SelectedColorProperty, &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;); }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20: 		}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22: 		&lt;span style="color:#008000;"&gt;// Using a DependencyProperty as the backing store for SelectedColor.  This enables animation, styling, binding, etc...&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23: 		&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; DependencyProperty SelectedColorProperty =
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24: 			DependencyProperty.Register(&amp;quot;&lt;span style="color:#8b0000;"&gt;SelectedColor&lt;/span&gt;&amp;quot;, &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Brush), &lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(MyControl), &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UIPropertyMetadata(Brushes.Red));
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 25: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 26: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 27: 		&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MyControl()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 28: 		{			
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 29: 		}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 30: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 31: 		&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnInitialized(EventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 32: 		{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 33: 			&lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.OnInitialized(e);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 34: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 35: 			&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.MouseLeftButtonDown += &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Windows.Input.MouseButtonEventHandler(MyControl_MouseLeftButtonDown);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 36: 		}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 37: 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 38: 		&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; MyControl_MouseLeftButtonDown(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, System.Windows.Input.MouseButtonEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 39: 		{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 40: 			MessageBox.Show(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.SelectedColor.ToString());
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 41: 			&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Selected = !&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.Selected;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 42: 		}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 43: 	}
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 44: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Window1.xaml&lt;/strong&gt;&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:500px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Window&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;WpfApplication13.Window1&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  2:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  3:     &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  4: 	&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;local&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;clr-namespace:WpfApplication13&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  5:     &lt;span style="color:#ff0000;"&gt;Title&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Window1&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Height&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  6:     &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  7: 		&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;local&lt;/span&gt;:&lt;span style="color:#800000;"&gt;MyControl&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctrl1&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  8: 			&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#c71585;"&gt;local&lt;/span&gt;:&lt;span style="color:#800000;"&gt;MyControl.Template&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  9: 				&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ControlTemplate&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TargetType&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;{x:Type local:MyControl}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 10: 					&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Background&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Green&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;:&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;source&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 11: 					&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 12: 						&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Trigger&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Selected&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 13: 							&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Setter&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TargetName&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;source&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Background&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;{TemplateBinding SelectedColor}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 14: 						&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Trigger&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 15: 						&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Trigger&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Selected&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 16: 							&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Setter&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TargetName&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;source&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Background&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Green&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 17: 						&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Trigger&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 18: 					&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ControlTemplate.Triggers&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 19: 				&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;ControlTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 20: 			&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;local&lt;/span&gt;:&lt;span style="color:#800000;"&gt;MyControl.Template&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 21: 		&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#c71585;"&gt;local&lt;/span&gt;:&lt;span style="color:#800000;"&gt;MyControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 22: 	&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 23: &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; 24: &lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;When we compile we get the following error, &lt;em&gt;&amp;quot;Cannot convert the value in attribute &amp;#39;Value&amp;#39; to object of type &amp;#39;&amp;#39;.&amp;#160; Error at object &amp;#39;System.Windows.Setter&amp;#39; in markup file &amp;#39;WpfApplication13;component/window1.xaml&amp;#39; Line 13 Position 58.&amp;quot;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So how can we solve this problem?&lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160; Since the problem here is that &lt;em&gt;TemplateBinding&lt;/em&gt; is not supported inside the ControlTemplate.Triggers, we have to find another way to make the binding, and so we just change the line 13 to&lt;/p&gt;

&lt;pre style="border-bottom:#cecece 1px solid;border-left:#cecece 1px solid;padding-bottom:5px;background-color:#fbfbfb;min-height:40px;padding-left:5px;width:500px;padding-right:5px;overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;padding-top:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  1: 							&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Setter&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;TargetName&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;source&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Property&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Background&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedColor}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; And if we look at the &lt;a href="http://msdn.microsoft.com/en-us/library/ms742882.aspx" target="_blank"&gt;TemplateBinding Markup&lt;/a&gt; page in MSDN, the usage of TemplateBinding is similar to the &lt;a href="http://msdn.microsoft.com/en-us/library/ms750413.aspx" target="_blank"&gt;Binding Markup&lt;/a&gt; using TemplatedPart as the RelativeSource, like {Binding RelativeSource={RelativeSource TemplatedParent}, Path=&lt;em&gt;DependencyPropertyToBind&lt;/em&gt;}&lt;/p&gt;

&lt;p&gt;Hope this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719937" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/WPF/default.aspx">WPF</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/UX/default.aspx">UX</category></item><item><title>Data Services – Can be ADO.NET or SQL – What’s the difference</title><link>http://msmvps.com/blogs/nunogodinho/archive/2009/07/07/data-services-can-be-ado-net-or-sql-what-s-the-difference.aspx</link><pubDate>Tue, 07 Jul 2009 18:18:41 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1698623</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1698623</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1698623</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2009/07/07/data-services-can-be-ado-net-or-sql-what-s-the-difference.aspx#comments</comments><description>&lt;p&gt;Just a while ago I was talking about Data Services and suddenly a confusion between ADO.NET Data Services and SQL Data Services took place, because we were talking about different Data Services, and so in order to try to clarify the differences I remembered to write this post. &lt;/p&gt;  &lt;p&gt;There are two types of Data Services that are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Data Services&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;Cloud&lt;/em&gt; – at this moment is being converted from ACE (Activity, Container and Entity)&amp;#160; to TDS (Tabular Data Stream) as I’ve &lt;a href="http://msmvps.com/blogs/nunogodinho/archive/2009/07/06/experiments-with-the-new-sql-data-services.aspx"&gt;presented in this post&lt;/a&gt;. &lt;/li&gt;      &lt;li&gt;In this case we are talking about a Database in the &lt;em&gt;Cloud&lt;/em&gt; and the ultimate desire will be to just change the ConnectionString used.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ADO.NET Data Services aka. “Project Astoria”&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This one is about making available a set of &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;REST Services on top of ADO.NET&lt;/a&gt;&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Highly Extensible:&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Query Filtering (GET requests)&lt;/li&gt;          &lt;li&gt;Operation Filtering (PUT, POST, DELETE, etc requests)&lt;/li&gt;          &lt;li&gt;Making other Operations available with the same capabilities as the ones associated with ADO.NET Data Services.&lt;/li&gt;          &lt;ul&gt;           &lt;li&gt;Filter&lt;/li&gt;            &lt;li&gt;Sort&lt;/li&gt;            &lt;li&gt;Group&lt;/li&gt;            &lt;li&gt;Take&lt;/li&gt;            &lt;li&gt;Skip&lt;/li&gt;            &lt;li&gt;and so on.&lt;/li&gt;         &lt;/ul&gt;       &lt;/ul&gt;        &lt;li&gt;This layer can be placed on top of:&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Entity Framework&lt;/li&gt;          &lt;li&gt;Linq-to-SQL&lt;/li&gt;          &lt;li&gt;Custom CLR Objects&lt;/li&gt;       &lt;/ul&gt;     &lt;/ul&gt;      &lt;li&gt;Where to know more:&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Overview: &lt;a href="http://msdn.microsoft.com/en-us/library/cc956153.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc956153.aspx&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;Sample: &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc748663.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc748663.aspx&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Offline Version:&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL08/"&gt;http://channel9.msdn.com/pdc2008/TL08/&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;&lt;a href="http://blogs.msdn.com/astoriateam/archive/2008/10/22/astoria-futures-offline-enabled-data-services.aspx"&gt;http://blogs.msdn.com/astoriateam/archive/2008/10/22/astoria-futures-offline-enabled-data-services.aspx&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Hope it helps you get the confusions out of discussions on this topic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1698623" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/ADO.NET+Data+Services/default.aspx">ADO.NET Data Services</category></item><item><title>ASP.NET MVC Beta version Released</title><link>http://msmvps.com/blogs/nunogodinho/archive/2008/10/17/asp-net-mvc-beta-version-released.aspx</link><pubDate>Fri, 17 Oct 2008 14:29:58 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1651145</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1651145</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1651145</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2008/10/17/asp-net-mvc-beta-version-released.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&amp;#160; Following the ASP.NET development this new MVC Framework is important because in some cases will be the right choice for the development process. The first releases had problems regarding AJAX integration and also poor set of controls, when compared to the ASP.NET Web Forms version, but with this version a lot has changed, and things like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Better Visual Studio Support&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Works with VS 2008 with and without SP1&lt;/li&gt;      &lt;li&gt;Provides a new “Add View” option in the context Menu when developing the controller class&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Supports jQuery&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This has been a great progress for ASP.NET and it’s not only possible with ASP.NET MVC Framework&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Strong Types&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Changes in order to use Strong Types like:&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;UpdateModel&lt;/li&gt;        &lt;li&gt;TryUpdateModel&lt;/li&gt;     &lt;/ul&gt;   &lt;/ul&gt;    &lt;li&gt;Improved Unit Testing&lt;/li&gt;    &lt;li&gt;Validation Errors&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Adds support to IDataErrorInfo&lt;/li&gt;      &lt;li&gt;Adds support for Dynamic Data Attributes&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Integration between Silverlight and ASP.NET MVC Projects&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; This are some of the new stuff in this new Beta release, and you can see more about it on &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie’s&lt;/a&gt; Blog &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx" target="_blank"&gt;post that presents this subject&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; To start using it just &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&amp;amp;displaylang=en" target="_blank"&gt;download this version here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1651145" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category></item><item><title>.NET Framework 3.5 SP1 Changes</title><link>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/net-framework-3-5-sp1-changes.aspx</link><pubDate>Wed, 27 Aug 2008 23:38:33 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646030</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1646030</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1646030</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/net-framework-3-5-sp1-changes.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; With the release of the new Service Pack 1 for the .NET Framework 3.5 several changes were made on several levels of the framework, and previously I talked about the changes that were made on the WPF scope, but much more as been done, and things like the &lt;a href="http://blogs.msdn.com/clrcodegeneration/archive/2008/08/15/what-s-in-netfx-3-5-sp1.aspx" target="_blank"&gt;CLR&lt;/a&gt; were changed as &lt;a href="http://blogs.msdn.com/clrcodegeneration" target="_blank"&gt;Kevin Frie wrote on the CLRCodeGeneration blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; Other person like the &lt;a href="http://codebetter.com/blogs/patricksmacchia/" target="_blank"&gt;C# MVP Patrick Smacchia&lt;/a&gt; made a much deeper look and explained graphically where the changes were made and &lt;a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/08/13/net-3-5-sp1-changes-overview.aspx" target="_blank"&gt;posted it on his blog&lt;/a&gt;, and this was a very interesting result to see.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; Another change was that now the .Net Framework 3.5 with the Service Pack 1 allows managed code to be launched from a network share, and this will be a big change for all of those that were used to have a executable on a server and then all the client machines were to run that executable. &lt;a href="http://blogs.msdn.com/vancem/" target="_blank"&gt;Vance Morison&lt;/a&gt; as the &lt;a href="http://blogs.msdn.com/vancem/archive/2008/08/13/net-framework-3-5-sp1-allows-managed-code-to-be-launched-from-a-network-share.aspx" target="_blank"&gt;full story about this on this post&lt;/a&gt;. This didn’t work but now it does. &lt;strong&gt;Great&lt;/strong&gt;. My question is, “Why is this needed in the current work and architecture?” but &lt;a href="http://blogs.msdn.com/brada/archive/2007/10/26/adhoc-poll-allowing-net-exes-to-run-off-a-network-share.aspx" target="_blank"&gt;because it was a huge request&lt;/a&gt;, Microsoft eared it and fixed it. &lt;strong&gt;It’s Great to be eared .&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160; &lt;/strong&gt;And so we know great changes are being made and very importantly changes that came from feedback provided from those who use the technology. &lt;strong&gt;Excellent.&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646030" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category></item><item><title>Training for ASP.NET Virtual Earth Control</title><link>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/training-for-asp-net-virtual-earth-control.aspx</link><pubDate>Wed, 27 Aug 2008 23:24:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646027</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1646027</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1646027</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/training-for-asp-net-virtual-earth-control.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; For all of those that develop or would like to develop ASP.NET solutions with integration of Virtual Earth using the new ASP.NET control &lt;a href="http://www.liveside.net/developer/archive/2008/08/04/deep-dive-introduction-into-the-virtual-earth-asp-net-control.aspx" target="_blank"&gt;here is the link&lt;/a&gt; for a very interesting series of videos and samples about how to use the ASP.NET Virtual Earth control.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Don’t miss this fabulous opportunity to know more about this control that brings a easy way to develop ASP.NET solutions with integration of Virtual Earth.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646027" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Live+Platform/default.aspx">Windows Live Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Virtual+Earth/default.aspx">Virtual Earth</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category></item><item><title>Windows Presentation Foundation Major Release 3</title><link>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/windows-presentation-foundation-major-release-3.aspx</link><pubDate>Wed, 27 Aug 2008 21:08:25 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646017</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1646017</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1646017</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2008/08/27/windows-presentation-foundation-major-release-3.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&amp;#160; With the release of the .NET Framework 3.5 SP1 the WPF suffered the third major release of it’s short history.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; This major areas that were affected were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Deployment &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Now instead of needing the full framework installation it was made a lightweight version in order to run only this technology, and&amp;#160; this is called the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8CEA6CD1-15BC-4664-B27D-8CEBA808B28B&amp;amp;displaylang=en" target="_blank"&gt;Client Profile&lt;/a&gt;. This lightweight version that consumes 25 MB includes the following:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;CLR (bases of the .NET Framework) &lt;/li&gt;      &lt;li&gt;Click Once (Used in the installation of the WPF applications) &lt;/li&gt;      &lt;li&gt;Windows Forms (Runtime used to run the Windows Forms solutions that can be held also inside WPF applications using WindowsFormsHost class) &lt;/li&gt;      &lt;li&gt;Windows Presentation Foundation (Runtime used to run the WPF solutions that can also be held inside Windows Forms Applications using the ElementHost class) &lt;/li&gt;      &lt;li&gt;Windows Communication Foundation (Runtime used to run and consume WCF services that are normally used by Windows and WPF applications) &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Graphics &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; This versions includes powerful enhancements on the WPF graphics primarily on the 3D scope in controls like UIElement3D and Viewport2DVisual3D (that is responsible for making 2D object viewable in 3D).&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Also brings the &lt;a href="http://msdn.microsoft.com/en-us/library/bb944006%28VS.85%29.aspx#Pixel_Shader_Basics" target="_blank"&gt;HLSL shaders&lt;/a&gt; with the ShaderEffect class, that are entirely implemented on the GPU level, which makes it a lot faster, in case you have the Pixel Shader 2.0 support on your hardware).&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Another class that was also enhanced was the WritableBitmap class that now enables a very efficient image manipulation, by giving the ability to provide bitmap images mapped in the system memory that will give us the ability to change it on runtime and have the effects immediately on the screen.&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Performance &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Changes to the cold start on the application that are now improved in 45% depending on the application size.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Virtualization optimizations such as in TreeView, columns that can now be virtualized and that will enable a better and easier creation of DataGrid controls.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;New Controls &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The much asked Datagrid control is now part of the WPF controls that are made available, but that will be released after the .net 3.5 SP1 release.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The Office Ribbon control is also part of the new WPF controls and will also be released after the .net 3.5 SP1 release as the DataGrid Control.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; A Rich functionality WebBrowser Control, that in the previous versions worked via a Frame Element, and now will permit javacript and other funcionalities that exist on the normal browsers, and also will provide the ability for WPF applications to host Silverlight contents.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Other Enhancements &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Support for String formatting on the databinding of text without having to implement the IValueConverter interface.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Extended support for the XBAP for the Firefox by providing the ClickOnce native support inside it.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Improvements in the WPF Designer of the Visual Studio 2008 solving some problems that existed with the rendering of elements majorly when they were based on other custom controls.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; There’s a change that needs to be made on the Blend 2.5 Preview in order to solve some of this problems and that can be &lt;a href="http://www.microsoft.com/expression/try-it/default.aspx?filter=prerelease" target="_blank"&gt;downloaded here&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Integration &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Improved DirectX integration by having the D3DImage class that enabled the developer to overlay or blend the Direct3D contents with the WPF contents.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In conclusion, all great stuff for those who develop using this powerful Microsoft Technology called WPF that changed the main community site to the &lt;a href="http://windowsclient.net/wpf" target="_blank"&gt;WindowsClient.net/WPF&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For more information’s check the following links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/jaimer" target="_blank"&gt;Jaime Rodriguez&lt;/a&gt; blog post on &lt;a href="http://blogs.msdn.com/jaimer/archive/2008/08/15/cheat-sheet-to-some-of-the-wpf-3-5-sp1-features.aspx" target="_blank"&gt;WPF 3.5 SP1 features&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/jgoldb" target="_blank"&gt;WPF perfomance&lt;/a&gt; blog post on &lt;a href="http://blogs.msdn.com/jgoldb/archive/2008/05/15/what-s-new-for-performance-in-wpf-in-net-3-5-sp1.aspx" target="_blank"&gt;What’s New for Performance in WPF in .Net 3.5 SP1&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tims" target="_blank"&gt;Tim Sneath&lt;/a&gt; blog post on &lt;a href="http://blogs.msdn.com/tims/archive/2008/05/12/introducing-the-third-major-release-of-windows-presentation-foundation.aspx" target="_blank"&gt;Introducing the Third Major Release of Windows Presentation Foundation&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646017" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/WPF/default.aspx">WPF</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category></item><item><title>RTM of SP1 for .NET 3.5, Visual Studio 2008 and Visual Studio Team Foundation Server Released</title><link>http://msmvps.com/blogs/nunogodinho/archive/2008/08/11/rtm-of-sp1-for-net-3-5-visual-studio-2008-and-visual-studio-team-foundation-server-released.aspx</link><pubDate>Mon, 11 Aug 2008 18:13:47 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644280</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1644280</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1644280</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2008/08/11/rtm-of-sp1-for-net-3-5-visual-studio-2008-and-visual-studio-team-foundation-server-released.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&amp;#160; The RTM version of SP1 for .NET Framework 3.5, Visual Studio 2008 and also Team Foundation Server is already available for &lt;a href="http://msdn.microsoft.com/en-us/subscriptions/default.aspx" target="_blank"&gt;MSDN Subscribers&lt;/a&gt;, so check and download it, and start using it. It’s great.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644280" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category></item></channel></rss>