<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>digitalnetbizz's WebLog : WPF</title><link>http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx</link><description>Tags: WPF</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Given a point, how to get the element at that coordinate?</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/08/30/given-a-point-how-to-get-the-element-at-that-coordinate.aspx</link><pubDate>Thu, 30 Aug 2007 20:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4649999</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/4649999.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=4649999</wfw:commentRss><description>&lt;P&gt;UIElement.InputHitTest is a hidden function that could do just that, &lt;/P&gt;
&lt;P&gt;&lt;SPAN class=keyword&gt;public&lt;/SPAN&gt; IInputElement &lt;SPAN class=identifier&gt;InputHitTest&lt;/SPAN&gt; (&lt;BR&gt;Point &lt;SPAN class=parameter&gt;point&lt;/SPAN&gt;&lt;BR&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Passing in the coordinate, and this function will look at the element subtree and get the element (IInputElement because it's a common interface between ContentElement and UIElement) that is at that location.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4649999" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>GetPointAtFractionLength</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/04/04/getpointatfractionlength.aspx</link><pubDate>Thu, 05 Apr 2007 08:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2030020</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/2030020.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=2030020</wfw:commentRss><description>&lt;P FONTFACE="VERDANA"&gt;&lt;FONT color=#0000ff&gt;This is such a cool API, this is one sample usage (ie. Drawing a clock). I could see things like manually tracing a PathGeometry which could contain complex Bezier segments.&lt;/FONT&gt;&lt;/P&gt;&lt;IMG src="http://bludav2.storage.msn.com/x1p-QHRgOziLbIoru7k-BYvKMCToKrfZZrRbaP-RdmZBWPZmF1dvfcM3Gk8sEBPdp7ELVfeeFYexGbwEOBoD1MsuBDsOA9pFcqBQCiz27bKIqRYwMQR4H41aw" mce_src="http://bludav2.storage.msn.com/x1p-QHRgOziLbIoru7k-BYvKMCToKrfZZrRbaP-RdmZBWPZmF1dvfcM3Gk8sEBPdp7ELVfeeFYexGbwEOBoD1MsuBDsOA9pFcqBQCiz27bKIqRYwMQR4H41aw"&gt; 
&lt;P&gt;&lt;FONT color=#0000ff&gt;double&lt;/FONT&gt; len = 0d;&lt;BR&gt;&lt;FONT color=#008080&gt;Point&lt;/FONT&gt; pt, ptTan;&lt;BR&gt;&lt;FONT color=#008080&gt;EllipseGeometry&lt;/FONT&gt; geo = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;EllipseGeometry&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;Point&lt;/FONT&gt;(50, 50), 50, 50);&lt;BR&gt;&lt;FONT color=#008080&gt;PathGeometry&lt;/FONT&gt; pathGeo = geo.GetFlattenedPathGeometry();&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;for&lt;/FONT&gt; (&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt; c = 0; c &amp;lt; 12; ++c)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; len += (&lt;FONT color=#0000ff&gt;double&lt;/FONT&gt;)(1 / 12d);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pathGeo.GetPointAtFractionLength(len, &lt;FONT color=#0000ff&gt;out&lt;/FONT&gt; pt, &lt;FONT color=#0000ff&gt;out&lt;/FONT&gt; ptTan);&lt;BR&gt;&lt;FONT color=#008080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rectangle&lt;/FONT&gt; rect = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;Rectangle&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rect.Height = rect.Width = 2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect.Fill = &lt;FONT color=#008080&gt;Brushes&lt;/FONT&gt;.Red;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;.mainCanvas.Children.Add(rect);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008080&gt;Canvas&lt;/FONT&gt;.SetTop(rect, pt.Y);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008080&gt;Canvas&lt;/FONT&gt;.SetLeft(rect, pt.X);&lt;BR&gt;}&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2030020" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>PresentationSource</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/03/09/presentationsource.aspx</link><pubDate>Sat, 10 Mar 2007 06:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1849978</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/1849978.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=1849978</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;STRONG&gt;System.Windows.PresentationSource &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/system.windows.presentationsource_members.aspx"&gt;PresentationSource&lt;/A&gt; is such a useful class after digging deeper into it. I’ve use it from time to time and looking at its members, I can see more use of it in the future. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;The purpose of PresentationSource is to handle interop scenarios. To begin using this, anytime you want to call into User32.dll, you need a HWND. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Then you need this to get hwnd: &lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;You can do a ton of work from a hwnd itself like calling SetWindowLong, SetParent, SetWindowRegion and hundreds more etc..&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Next cool function of PresentationSource is to get HwndSource so that you can call AddHook which allows you to subclass by providing your own WndProc.&lt;BR&gt;&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;HwndSource hwndSource = PresentationSource.FromVisual(window) as HwndSource;&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;hwndSource.AddHook(…);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Then you can use PresentationSource to determined, if an element is rendered. If so it must be connected to PresentationSource.&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;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;PresentationSource.FromVisual(uielement);&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt; will return a PresentationSource object if connected, null otherwise.&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;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;PresentationSource.FromVisual(uielement).RootVisual&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt; is an alternate way to get to your Root UI like a Window without walking up the visual tree.&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; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;You can use &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;PresentationSource.AddSourceChangedHandler&lt;/I&gt;&lt;/B&gt; to determined when the element are disconnected from it’s Parent.&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; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Finally, you can also get CompositionTarget which is another cool class by presentationSource.CompositionTarget. By using CompositionTarget, you can do stuffs like &lt;A href="http://thewpfblog.com/?p=46"&gt;this&lt;/A&gt; but don’t over-do it cause it’s &lt;A href="http://www.geektieguy.com/2006/08/23/compositiontargetrendering-can-be-a-cpu-hog"&gt;expensive in performance&lt;/A&gt;. &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;CompositionTarget.Rendering&lt;/I&gt;&lt;/B&gt; is an alternate way to get high fidelity (animation class) rendering. Here a summary of CompositionTarget.Rendering.&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;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;The CompositionTarget.Rendering event is fired when the animation system finishes applying animation related changes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The updated display information is then handed off to the rendering engine, which evaluates how many times per-second it can redisplay based on scene complexity and other factors.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Depending on that, it may decide to skip a particular frame produced by the animation system.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Putting it another way, the draw rate can easily be different from the rate of the CompositionTarget.Rendering events.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1849978" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Get notification from WPF dependency system</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/02/08/get-notification-from-wpf-dependency-system.aspx</link><pubDate>Thu, 08 Feb 2007 11:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1625197</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/1625197.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=1625197</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;This is valuable information on hooking into DP system of WPF.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;The answer is DependencyPropertyDescriptor. This is similar to PropertyDescriptor from WinForm.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.dependencypropertydescriptor_members.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.componentmodel.dependencypropertydescriptor_members.aspx"&gt;http://msdn2.microsoft.com/en-us/library/system.componentmodel.dependencypropertydescriptor_members.aspx&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;For example, if you want to get notification whenever a property change but you don't own the code and you don't derive from the class and it does not&amp;nbsp;expose SomethingChanged event. How can you get notification.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;EM&gt;&lt;STRONG&gt;DependencyPropertyDescriptor&lt;/STRONG&gt; dpDes = &lt;STRONG&gt;DependencyPropertyDescriptor&lt;/STRONG&gt;.FromProperty(&lt;STRONG&gt;Control&lt;/STRONG&gt;.&lt;STRONG&gt;BackgroundProperty&lt;/STRONG&gt;);&lt;BR&gt;dpDes.AddValueChanged(myElement, myEventHandler);&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;EM&gt;S&lt;/EM&gt;o whenever someone do a SetValue/ResetValue/ClearValue on myElement.Background, myEventHandler will be raised. When you are done listening to change notification, you can do RemoveValueChanged(..) to unsubscribe.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;A class="" href="http://blogs.msdn.com/bencon/archive/2007/02/02/cool-trick-with-dependency-properties.aspx" mce_href="http://blogs.msdn.com/bencon/archive/2007/02/02/cool-trick-with-dependency-properties.aspx"&gt;BenCon&lt;/A&gt; was talking about this as well :-)&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1625197" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Hmmm... WPF popup is always TOP_MOST</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/11/hmmm-wpf-popup-is-always-top-most.aspx</link><pubDate>Fri, 12 Jan 2007 06:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1453675</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/1453675.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=1453675</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Consolas; mso-bidi-font-family: Arial"&gt;Recently I have this bug inherited from my good intern that WPF &lt;EM&gt;&amp;lt;Popup/&amp;gt;&lt;/EM&gt; will always be TOP_MOST in terms of z-index. The bug scenario is that when you have another application (eg. notepad.exe) going on top of my WPF application (with Popup launched), Popup will be top most even though notepad appears on top of my app. So to fix this, I'm using some old Win32 tricks :-)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #17365d; FONT-FAMILY: Consolas; mso-themecolor: text2; mso-bidi-font-family: Arial; mso-themeshade: 191"&gt;[&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #c00000; FONT-FAMILY: Consolas; mso-bidi-font-family: Arial"&gt;DllImport&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #17365d; FONT-FAMILY: Consolas; mso-themecolor: text2; mso-bidi-font-family: Arial; mso-themeshade: 191"&gt;("user32", EntryPoint = "SetWindowPos")]&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Consolas; mso-bidi-font-family: Arial"&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #c00000"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;static extern int&lt;/SPAN&gt; &lt;I style="mso-bidi-font-style: normal"&gt;SetWindowPos&lt;/I&gt;(&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;IntPtr&lt;/SPAN&gt; hwnd, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; hwndInsertAfter, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; x, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; y, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; cx, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; cy, &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;int&lt;/SPAN&gt; wFlags);&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #c00000; FONT-FAMILY: Consolas; mso-bidi-font-family: Arial"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: Consolas; mso-bidi-font-family: Arial"&gt; &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;class&lt;/SPAN&gt; MyPopup : Popup&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; ...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #c00000"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;override&lt;/SPAN&gt; void OnOpened(&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;EventArgs&lt;/SPAN&gt; e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;IntPtr&lt;/SPAN&gt; hwnd = ((&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;HwndSource&lt;/SPAN&gt;)PresentationSource.&lt;I style="mso-bidi-font-style: normal"&gt;FromVisual&lt;/I&gt;(this.Child)).Handle;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;I style="mso-bidi-font-style: normal"&gt;SetWindowPos&lt;/I&gt;(hwnd, -2, posX, posY, (int)this.Width, (int)this.Height, 0);&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;BR&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true" Font="Tahoma"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1453675" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>My WPF Hobby project for 2006 "Portfolio Delta"... a little late.</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/09/my-wpf-hobby-project-for-2006-a-little-late.aspx</link><pubDate>Tue, 09 Jan 2007 20:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1439947</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/1439947.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=1439947</wfw:commentRss><description>&lt;P&gt;It's been sometime since I last&amp;nbsp;post here.&amp;nbsp;This site even come with a new blog software. Very nice.&lt;/P&gt;
&lt;TABLE class=""&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top&gt;&lt;IMG src="http://tkfiles.storage.msn.com/x1p-QHRgOziLbIoru7k-BYvKJSqxd878dSJsdYUpFMpeJpAzkf82E3witoUybHb4Mz2U9AWmwQjmbHdv36P-BrIGlE79EOfyOm9hUhMpJei-lI" mce_src="http://tkfiles.storage.msn.com/x1p-QHRgOziLbIoru7k-BYvKJSqxd878dSJsdYUpFMpeJpAzkf82E3witoUybHb4Mz2U9AWmwQjmbHdv36P-BrIGlE79EOfyOm9hUhMpJei-lI"&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top CellPadding="4"&gt;
&lt;P HMARGIN="4"&gt;Every year during my OOF days, I worked on some hobby project that I will be using. Last year, I was doing a Stock reader for my own consumption. It comes with loads of features. Mostly for my personal use, to track my position at a given time, watch list for funds, stock to look out. Other features includes charting, per stock detail news, RSS viewer for financial/stock news, RSS player for financial/stock podcast, auto-complete for stock quote, streaming quotes, 4 viewing modes and a few more. It's still on-going because I am using this tool from time to time + I have 3 beta users to give me feedback :-)&lt;/P&gt;
&lt;P HMARGIN="4"&gt;This is done with the VS template for WPF.&amp;nbsp;Total&amp;nbsp;serious dev time is about&amp;nbsp;6 days.&amp;nbsp;Developed for Microsoft Windows Vista plaform, it takes about 20MB. Can be deploy via xcopy or clickonce. Haven't experiment with browser inline hosting via IFRAME. Will test that next. &lt;/P&gt;
&lt;P HMARGIN="4"&gt;Still a few features to add in like sorting via column header, writing a chart chooser with nice effects etc.. &lt;/P&gt;
&lt;P HMARGIN="4" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1439947" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>1 line XAML challenge and Popup ....</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2006/08/18/1-line-xaml-challenge-and-popup.aspx</link><pubDate>Sat, 19 Aug 2006 09:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:707239</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/707239.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=707239</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Georgia size=2&gt;I saw &lt;A href="http://blogs.msdn.com/tims"&gt;Tim's &lt;/A&gt;challenge and thought about some interesting single element XAML. One of my markup which I thought will cover the whole screen does not do that anymore, it just covers about 80% of the screen MAX. I remember going thru the threat modeling and having Markup injection like this a concern. The following markup definitely covers the whole screen 12 months ago - and my application is running full-trust.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;EM&gt;&amp;lt;Popup IsOpen="true" StaysOpen="true" Placement="Absolute" HorizontalOffset="0" VerticalOffset="0"&amp;nbsp;&lt;BR&gt;xmlns= "&lt;/EM&gt;&lt;/FONT&gt;&lt;A href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&gt;&lt;FONT face="Courier New" size=2&gt;&lt;EM&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Georgia&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;" Width="2000" Height="2000"/&amp;gt;&lt;/EM&gt;&lt;/FONT&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;This is all good, just signs that WPF is wrapping up and ready to ship :-).&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=707239" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Tiling with VisualBrush - WPF Beta 2</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2006/06/20/tiling-with-visualbrush-wpf-beta-2.aspx</link><pubDate>Tue, 20 Jun 2006 10:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:638729</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/638729.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=638729</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;It has been a while since I last blog about WPF (Avalon) related work. Well, here’s some updates on something I tried recently. I have some requirement lately to implement some GridLines for Diagrams. I first try to use OnRender and doing DrawLine inside of OnRender. I found that this is somehow slow when I have many shapes and lines around it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;So I want something similar to DrawLine and try setting Background property to a VisualBrush. XAML as follow:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;&lt;FONT face=Calibri&gt;&amp;lt;Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" &amp;gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Grid&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Grid.Background&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;VisualBrush TileMode="Tile" Viewport="0,0,20,20" ViewportUnits="Absolute" Viewbox="0,0,20,20" &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;ViewboxUnits="Absolute"&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;VisualBrush.Visual&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Rectangle Stroke="Blue" StrokeThickness="0.1" Width="20" Height="20" /&amp;gt;&lt;BR&gt;&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/VisualBrush.Visual&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/VisualBrush&amp;gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&amp;lt;/Grid.Background&amp;gt;&lt;BR&gt;&amp;lt;/Grid&amp;gt;&lt;BR&gt;&amp;lt;/Page&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;And this will look like:&lt;/FONT&gt;&lt;/P&gt;&lt;IMG src="http://tk.files.storage.msn.com/x1pOVAy8_rrDizp9tK5LPnCBtrOfR8oBcG21FWs1nwHItxrGYnxnsnPpIEkpzpUhfHt5p2eo-e9HfslRBiMZ-QGmyQOJv-2qyXoz7YaazAPoY9iHTfxiOWPHswL0o8D9W8_"&gt; 
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;I found that this perform better than OnRender, this is solely based on my moving of many lines and shapes around the diagram.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course this is not cheap either, a Visual is basically equivalent to an UIElement. So you can essentially do this:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="COLOR: #1f497d; mso-themecolor: text2"&gt;&lt;FONT face=Calibri&gt;&amp;lt;Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" &amp;gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Grid&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Grid.Background&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;VisualBrush TileMode="Tile" Viewport="0,0,20,20" ViewportUnits="Absolute" Viewbox="0,0,20,20" &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;ViewboxUnits="Absolute"&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;VisualBrush.Visual&amp;gt;&lt;BR&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;Button/&amp;gt;&lt;/B&gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/VisualBrush.Visual&amp;gt;&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/VisualBrush&amp;gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&amp;lt;/Grid.Background&amp;gt;&lt;BR&gt;&amp;lt;/Grid&amp;gt;&lt;BR&gt;&amp;lt;/Page&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;The above XAML will tile what it seems a bunch of Button. But in reality only 1 Button object is created then casting to Visual and repeat the same bits across the Grid as background. Of course you can also compose deeper XAML tree for the VisualBrush but according the PERF guidance document at &lt;/FONT&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f497d; LINE-HEIGHT: 115%; FONT-FAMILY: Arial; mso-themecolor: text2"&gt;www.designerslove.net/docs/ Optimizing%20Performance%20in%20the%20Windows%20Presentation%20Foundation.doc&lt;/SPAN&gt;&lt;/I&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; LINE-HEIGHT: 115%; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;If you are in Software Rendering Mode, either 16 bits, Hardware Acceleration turned off or using older graphics card (support DX7 and lower) then tiling can be very expensive. If your card supports DX9, you should be fine and running Hardware Acceleration unless you are trying to tile 3d rotating objects as background then it really depends on how much VRAM you have &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri&gt;The other thing to note about Visuals in VisualBrush is that there don’t have hittesting, no events, no focus and purely serve as an image to the Background. Finally remember to set TileMode property to Tile to enable tiling.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=638729" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Calendar Printing Assistant for Outlook 2007</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2006/06/19/calendar-printing-assistant-for-outlook-2007.aspx</link><pubDate>Tue, 20 Jun 2006 07:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:638494</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/638494.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=638494</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Georgia size=2&gt;If you have access to Microsoft Office 2007 Beta2, check out this new office program:&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/office/preview/programs/outlook/cpa.mspx"&gt;&lt;FONT face=Georgia size=2&gt;http://www.microsoft.com/office/preview/programs/outlook/cpa.mspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;This software has dependency on Windows Presentation Framework Beta 2 (codename: Avalon) and of course&amp;nbsp;Office 2007 Beta2. This software also utilize the rendering/style&amp;nbsp;power&amp;nbsp;of WPF.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;This program allows you to use additional template for your Outlook appointments and data.&lt;/FONT&gt; This allows you to create view like this and more:&lt;BR&gt;&lt;/P&gt;&lt;IMG src="http://img.microsoft.com/library/media/1033/office/images/preview/programs/outlook/67631_400x259_longrange.jpg"&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=638494" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/Office/default.aspx">Office</category></item><item><title>A Collection of useful Avalon tutorial</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2005/11/06/a-collection-of-useful-avalon-tutorial.aspx</link><pubDate>Sun, 06 Nov 2005 11:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:489538</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/489538.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=489538</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;While researching for information about Avalon [&lt;A href="http://blogs.msdn.com/digitalnetbizz/archive/2005/11/01/487638.aspx"&gt;for play-n-learn sample&amp;nbsp;app&lt;/A&gt;], I realized&amp;nbsp;that I'm always going back to the same site/blog over and over again. I thought it is nice to just compile a list of information that I'm always using from time to time so that other users of Avalon can make find this easily. I can definately use all these information until more WPF books in the pipeline.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Tahoma&gt;A Collection of useful WPF Avalon tutorial/info [:)]&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Intro to WPF&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/introwpf.asp"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Introduction to WPF&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;PDC 2005Webcast&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://microsoft.sitestream.com/PDC05/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Streaming Site&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;FONT face=Tahoma size=2&gt;[many sessions within]&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Avalon 3d&lt;/FONT&gt; &lt;/STRONG&gt;[some math/physics required :)]&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/danlehen/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Halfbrite&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://kindohm.com/archive/2005/09/21/Avalon3DTutorial.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;kindohm.com Avalon 3D tutorial&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/karstenj/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;karstenj's blog&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://avalon3d.blogspot.com/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Andrej's blog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Avalon Core concepts&lt;/STRONG&gt; [must read !!!]&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.ondotnet.com/pub/a/dotnet/2004/03/08/winfs_detail_3.html"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Ian's Graphical Composition in Avalon [why Avalon&amp;nbsp;diff&amp;nbsp;from Win32]&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; Avalon Dissected&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/dmarsh/articles/40626.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Part 1&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://weblogs.asp.net/dmarsh/articles/40628.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Part 2&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.eightypercent.net/Archive/2003/12/02.html"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Joe Beda on Avalon Visuals&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;[old but good]&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/nickkramer/archive/2005/07/11/437345.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Avalon and hwnd&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blog.hackedbrain.com/articles/UnderstandingDependencyObjectAndDependencyProperty.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Understanding DependencyObject, DepedencyProperty&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://winfx.msdn.microsoft.com/library/en-us/wcp_conceptual/html/f55d81af-3623-4754-a616-815ca45b6180.asp?frame=true#logical_tree"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Logical and Visual Tree&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://geekswithblogs.net/jolson/articles/3749.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Avalon Threading&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Avalon Media / MIL&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnavalon/html/avalon03262004.asp"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Basics&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/greg_schechter/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Greg Schechter's Blog&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.interact-sw.co.uk/iangblog/2005/05/29/magnify"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;VisualBrush&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.longhorncorner.com/UploadFile/mahesh/XamlBrushes04122005063827AM/XamlBrushes.aspx?ArticleID=dd6bfb8e-36dc-4344-a37b-1747cbd983cf"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Avalon Brushes&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Avalon Data Binding &lt;/STRONG&gt;[code bloat -&amp;gt; compact]&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp; Chris Sells MSDN Data Binding #&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/dnfoghorn/html/foghorn06252004.asp?frame=true"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;1&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; #&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/dnfoghorn/html/foghorn08112004.asp?frame=true"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;2&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; #&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/dnfoghorn/html/foghorn10132004.asp?frame=true"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;3&lt;BR&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.beacosta.com/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Beatriz's Data Binding Blog&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.joemarini.com/tutorials/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;joemarini.com&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/henryh/archive/2005/06/23/431846.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Multicolumn Listbox binding&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;FONT face=Tahoma size=2&gt;&lt;A href="http://blogs.msdn.com/namitag/default.aspx"&gt;Namita's WPF blog&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Avalon Controls&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnavalon/html/avalon07072004.asp"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Avalon Content Model&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/okoboji/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Kevin Moore's blog&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Avalon Layout System &lt;/STRONG&gt;[don't think you can build WPF app without this]&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/henryh/archive/2005/06/10/427605.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Authoring a custom layout in Avalon&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;FONT face=Tahoma size=2&gt;&lt;A href="http://fortes.com/2005/05/05/transforms/"&gt;RenderTransform and LayoutTransform&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Avalon Inputs&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.interact-sw.co.uk/iangblog/2005/05/19/avaloncommands"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Input, Commands and handlers&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Avalon Performance &lt;/STRONG&gt;[make it slim and fast]&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/henryh/archive/2005/10/06/477903.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Avalon Performance Whitepaper&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;FONT face=Tahoma size=2&gt;&lt;A href="http://www.longhornblogs.com/mmielke/"&gt;mmielke's blog&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Avalon Property System&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/dnavalon/html/avalon12142004.asp?frame=true"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Properties, Commands and Events&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/nickkramer/archive/2005/08/25/456024.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Attached Property&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/nickkramer/archive/2005/08/05/447969.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Property order precedence&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;Text/Typography/Document and Decorators&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://fortes.com/work"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Fortes Work&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;&lt;FONT size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Design &lt;/STRONG&gt;[inspiration]&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.notstatic.com/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;notstatic.com&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://designerslove.net/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;nathan's blog&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.longhornblogs.com/rdawson/default.aspx"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;rdawson's blog&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;XAML &lt;/STRONG&gt;[the syntax]&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://www.longhornblogs.com/rrelyea/"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Rob Relyea xaml:Blog&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.ondotnet.com/pub/a/dotnet/2004/01/19/longhorn.html"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Inside XAML&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;[old syntax, concept ok]&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.devx.com/webdev/Article/20834"&gt;&lt;FONT face=Tahoma color=#014982 size=2&gt;Comparing XAML with CSS2&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma size=2&gt;&amp;nbsp;[ great for web dev]&lt;BR&gt;&amp;nbsp; &lt;A href="http://nerddawg.blogspot.com/2005/11/resources-in-windows-presentation.html"&gt;Handling Resource in WPF&lt;/A&gt;&amp;nbsp;[every app needs&amp;nbsp;resource !!]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Avalon&amp;nbsp;Styles &lt;/STRONG&gt;[used to be VisualTree]&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;A href="http://www.oreilly.com/catalog/avalon/chapter/index.html"&gt;Styles and Control Templates sample chapter&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00"&gt;&lt;STRONG&gt;Cool WPF Apps&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; &lt;A href="http://www.winfxhearts.com/"&gt;WinFX Hearts&lt;/A&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/adam_nathan"&gt;[creator]&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;A href="http://www.microsoft.com/max/"&gt;Microsoft Max&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;A href="http://www.microsoft.com/products/expression/en/graphic_designer/gd_free_trial.aspx"&gt;Microsoft Expression&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;A href="http://www.microsoft.com/office/preview/programs/outlook/cpa.mspx"&gt;Calendar Printing Assistant for Outlook 2007&lt;/A&gt;&amp;nbsp;[updated]&lt;/FONT&gt;&lt;FONT style="BACKGROUND-COLOR: #ffff00" face=Tahoma size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=489538" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Experimental US weather service exposed via XML web service</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2005/11/03/experimental-us-weather-service-exposed-via-xml-web-service.aspx</link><pubDate>Thu, 03 Nov 2005 18:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:488689</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/488689.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=488689</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Garamond&gt;&lt;FONT size=4&gt;Found out yesterday that this information is available. I'm adding to&amp;nbsp;my &lt;/FONT&gt;&lt;a href="http://blogs.msdn.com/digitalnetbizz"&gt;&lt;FONT size=4&gt;sample&amp;nbsp;app &lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4&gt;(virtual earth)&amp;nbsp;to enrich user experience. &lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;a href="http://blogs.msdn.com/digitalnetbizz"&gt;&lt;IMG height=400 src="http://storage.msn.com/x1pdl4hdcNOiM7SRzjeXvHWn_WXS64mH-MMo0bfOGMPAbXtFhbTPLW2uAB1sOzVFPhSuhfqy-5GfthxzD7JWra08vUNy2IaSnJq62rKUFLKC7bV2Jqycp-dQ6-ySWD_SbENfpltMLN4ZPALHjQTUKoOeQ" width=400&gt;&lt;/A&gt; &lt;FONT face=Garamond&gt;&lt;FONT size=4&gt;&lt;BR&gt;&lt;BR&gt;For more information, refer to National Oceanic and Atmospheric Administration:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.weather.gov/xml/"&gt;&lt;FONT face=Garamond size=4&gt;http://www.weather.gov/xml/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=488689" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/Virtual+Earth/default.aspx">Virtual Earth</category></item><item><title>New and improved Nntp [dude] for Avalon March CTP ...</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2005/03/27/new-and-improved-nntp-dude-for-avalon-march-ctp.aspx</link><pubDate>Mon, 28 Mar 2005 06:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:402837</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/402837.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=402837</wfw:commentRss><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;I read &lt;a href="http://www.sellsbrothers.com/"&gt;Chris Sell’s blog &lt;/a&gt;and found out that the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=85ab132b-f1aa-4422-b053-272d79863013&amp;amp;displaylang=en"&gt;new Avalon CTP &lt;/a&gt;is available to public. As a member of the public I was too excited and decided to download and play with the CTP, CLR beta 2 and Visual C# Express. I was a bit worried as I have all kinds of VS installations, Avalon and CLR bits on my laptop. Following the advice from the download page, I managed to get everything working together very quick [be sure to do some reboots].&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;I need to dev something with it so I decided to revive my &lt;A href="http://blogs.msdn.com/digitalnetbizz"&gt;NNTP dude&lt;/a&gt; sample which definitely won’t work with current build (when I compiled the project I got almost ½ the source code lines giving error) and needed to screen redo. If you have looked at the source code before, it is all done programmatically in C#, nothing fancy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;I decided to only use my old Nntp library and redo all the UI with XAML. The original Avalon part of source code is &lt;em&gt;&lt;strong&gt;1124&lt;/strong&gt;&lt;/em&gt; lines. With my new code I am getting more with:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;strong&gt;&lt;em&gt;118&lt;/em&gt;&lt;/strong&gt; lines of XAML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;em&gt;&lt;strong&gt;250&lt;/strong&gt;&lt;/em&gt; lines of C# code for partial class event handling and init.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;Wow, that’s a lot of reduction. Definitely increase productivity and making my whole UI more flexible to change. I can’t imagine changing some of my view in the old C# code but now I’ve already change a view Visual Styling and all done declaratively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;New &lt;a href="http://storage.msn.com/x1pdl4hdcNOiM7SRzjeXvHWn_WXS64mH-MMo0bfOGMPAbUBxfI5kbZExBA6GAyU0g_WOgWUjpIq6Xx2Qijlp1V8maXYHx0QMP9Wz2qF9vkrPrOsU9IUkj2x-A"&gt;NNTP dude Screenshot&lt;/a&gt;&lt;br /&gt;&lt;img src="http://storage.msn.com/x1pdl4hdcNOiM7SRzjeXvHWn_WXS64mH-MMo0bfOGMPAbUBxfI5kbZExBA6GAyU0g_WOgWUjpIq6Xx2Qijlp1V8maXYHx0QMP9Wz2qF9vkrPrOsU9IUkj2x-A" /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;I still like 2d vector graphics as you can see. I am learning 3d elements and hopefully can utilize them next time. I felt that 3d is only for presentation like charting and special transitions [this is my personal opinion].&lt;/span&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;The one problem I faced with all these downloads (VC# express) is that it cannot start a Avalon/XAML project [maybe just me :-(]. What I did is to download a cool AvPad sample from &lt;a href="http://www.simplegeek.com"&gt;ChrisAn’s SimpleGeek&lt;/a&gt; site [downloading this source code is highly recommended, be sure to look at his &lt;em&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;MyApp.xaml&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;] and modify that csproj and get it launched with VC# express. This samples I got there comes with some very exciting styles and I reuse some of them. Also, this project is my reference to some new XAML syntax.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;With just &lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;em&gt;10-12&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt; hours (the last time was 3-4 days), I managed to get my Nntp app revived (with all XAML syntax). I did use some GDI calls to make my app look as like Windows Media Player (custom geometry clipping).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;internal&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt; &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; MakeIrregularWindow(&lt;span style="COLOR: teal"&gt;Window&lt;/span&gt; win)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;WindowInteropHelper&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt; interopWin = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;WindowInteropHelper&lt;/span&gt;(win);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;int&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt; handleRegion = CreateRoundRectRgn(0, 0, &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;AppWidth,AppHeight,AppRadius,AppRadius);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;SetWindowRgn(interopWin.Handle, handleRegion, &lt;span style="COLOR: blue"&gt;true&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas; mso-no-proof: yes"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;Don’t get me wrong, I like default Windows Styles/Themes. Just that I want to expose more of Avalon flexibility and Styling capabilities in my sample App.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;Most of my Xaml code goes to defining the layout and having some custom ItemStyle and VisualTree to make things look good. Setting ItemsSource&amp;nbsp;in event handlers.&amp;nbsp;I did have an inline Master-Detail list which I define a ListBox having another ListBox in the VisualTree – which I thought is cool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;I really like to share my project files but I can’t do that as I don’t have external website to host a .zip file [any recommendation?]. I am use MSN Spaces to store my screen shot image. &lt;br /&gt;&lt;br /&gt;I might blog more and dissecting the XAML in my sample and explaining my findings when I have time next week.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;- Kenny&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10.5pt; FONT-FAMILY: Consolas"&gt;&lt;font size="1"&gt;&lt;br /&gt;Content is provided "AS IS" with no warranties, and confers no rights.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=402837" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/Win32/default.aspx">Win32</category></item><item><title>Avalon DrawingContext ...</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2004/06/11/avalon-drawingcontext.aspx</link><pubDate>Fri, 11 Jun 2004 07:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:153294</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/153294.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=153294</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://longhorn.msdn.microsoft.com/lhsdk/ref/ns/system.windows.media/c/drawingcontext/drawingcontext.aspx"&gt;&lt;FONT face=Garamond size=5&gt;&lt;STRONG&gt;DrawingContext&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;FONT face=Garamond&gt;is Avalon's equivalent of hdc (handle to device context) in Win32 programming or &lt;A href="http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/whatsnewinGDIPlus/changesintheprogrammingmodel.asp?frame=true"&gt;Graphics &lt;/A&gt;in GDI+. It provides us with low level calls to render/draw on the surface (screen/print/other visuals). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;Here's a list of useful draw method in DrawingContext:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;EM&gt;1.&amp;nbsp; DrawDrawing&lt;BR&gt;2.&amp;nbsp; DrawEllipse&lt;BR&gt;3.&amp;nbsp; DrawGeometry&lt;BR&gt;4.&amp;nbsp; DrawGlyphs&lt;BR&gt;5.&amp;nbsp; DrawImage&lt;BR&gt;6.&amp;nbsp; DrawLine&lt;BR&gt;7.&amp;nbsp; DrawRectangle&lt;BR&gt;8.&amp;nbsp; DrawRoundedRectangle&lt;BR&gt;9.&amp;nbsp; DrawSubLineCollection&lt;BR&gt;10. DrawText&lt;BR&gt;11. DrawVideo&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;Most of the time, DrawingContext will be used within &lt;FONT face="Courier New" color=#000080&gt;&lt;STRONG&gt;Render&lt;/STRONG&gt;(&lt;STRONG&gt;DrawingContext&lt;/STRONG&gt; &lt;FONT color=#ff0000&gt;dc&lt;/FONT&gt;).&lt;/FONT&gt; This is&amp;nbsp;a method&amp;nbsp;that custom control can override and do customize drawing. Render() will be invoked whenever the screen area is dirty. You can also imagine that certain controls like Image will make use of DrawImage, while Typography uses DrawGlyphs/DrawText and Border will use DrawRectangle. It's really up to your imagination to mix and match these capabilities to come out with something slick.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;DrawVideo is definitely something fresh considering we are looking at the equivalent of HDC. IMO, this shows that Avalon is really making it easier and easier&amp;nbsp;for UI developer like me :).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Garamond&gt;Finally, Transform, Clip and Opacity&amp;nbsp;are also controllable from this class. What a powerful class!!!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=153294" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/MIL/default.aspx">MIL</category></item><item><title>Avalon Property Invalidation</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2004/03/14/avalon-property-invalidation.aspx</link><pubDate>Mon, 15 Mar 2004 05:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:89626</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/89626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=89626</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;If you are writing custom control. You sometimes need to know if your property change so that you&lt;BR&gt;can do something about it. For example, your control is CustomControl and have Size property. &lt;BR&gt;If the Size property change, you need to Invalidate Measure so that it will go back and call your &lt;BR&gt;MeasureCore() again. &lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;For those who are new to writing control. MeasureCore is one of the method that you can override to add your custom measurement code. Other than MeasureCore, there are ArrangeCore, EnsureVisuals, Render and a whole a list of other overrides. The method will be invoked in this sequence:&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;OnPropertyInvalidated&lt;BR&gt;EnsureVisuals&lt;BR&gt;MeasureCore&lt;BR&gt;ArrangeCore&lt;BR&gt;Render&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;Back to Property Invalidation. Recently I found out that there are 2 ways to receive notification when your property change. There are as follow:&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;1. Do it in OnPropertyInvalidated override&amp;#8220;&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;protected override void OnPropertyInvalidated&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(MSAvalon.Windows.DependencyProperty dp, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSAvalon.Windows.PropertyMetadata metadata)&lt;BR&gt;{&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp; // dp can be null, when invalidate all.&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; if(dp != null)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dp.Name == "Size")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;FONT color=#008000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ok - this means my Size property is changed.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // in my case, I want to do MeasureCore again. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // you can do other stuff like InvalidateRender etc..&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(this.oldSize != this.Size)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.InvalidateMeasure();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;2. Register for propertyInvalidatedCallback when you register your Property:&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="Courier New" size=2&gt;public static readonly DependencyProperty SizeProperty = &lt;BR&gt;&amp;nbsp;&amp;nbsp;DependencyProperty.RegisterAttached("Size", typeof(int), &lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;EM&gt;&lt;FONT face="Courier New" size=2&gt;typeof(CustomControl),&amp;nbsp;&lt;BR&gt;new FrameworkPropertyMetadata(0, false, SysWindows.MetadataFlags.None,&amp;nbsp;&lt;BR&gt; new PropertyInvalidatedCallback(OnSizeInvalidated), null));&lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;&lt;BR&gt;In the event when Size property is changed, your callback method "&lt;FONT face="Courier New"&gt;OnSizeInvalidated&lt;/FONT&gt;" will be invoked.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;You can use the FrameworkPropertyMetadata class to control what will this property affect. For example, the following FrameworkPropertyMetadata will tell the subsystem that when this property change, it will affect the measurement and this will ensure MeasureCore to be invoked.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;FrameworkPropertyMetadata(null, false, MetadataFlags.AffectsMeasure, null, null)&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face=Georgia size=2&gt;There are other richer MetadataFlags, that allow you to control other things like when this property change,it will affect my parent's Arrange. This is definitely a class to explore.&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=89626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Avalon webcast ...</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2004/01/29/avalon-webcast.aspx</link><pubDate>Thu, 29 Jan 2004 08:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64276</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/64276.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=64276</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Garamond&gt;Excellent Avalon/WinFX information (slides, webcasts + source code)&amp;nbsp;from PDC2003&amp;nbsp;available online right now at &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/Longhorn/PDCMaterials/PDCTalksAvalon/default.aspx"&gt;&lt;FONT face=Garamond&gt;MSDN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Garamond&gt;. &lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=64276" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx">WPF</category></item></channel></rss>