<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">digitalnetbizz's WebLog</title><subtitle type="html" /><id>http://blogs.msdn.com/digitalnetbizz/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/digitalnetbizz/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2006-06-19T21:54:00Z</updated><entry><title>very good 3d read</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/09/14/very-good-3d-read.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/09/14/very-good-3d-read.aspx</id><published>2007-09-14T10:10:00Z</published><updated>2007-09-14T10:10:00Z</updated><content type="html">&lt;P&gt;hah... supposed to be my last post but hey i have 1 more thing to post. This is a good book for 3d - plus it's very focus and not thick at all. Very well written.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://ec1.images-amazon.com/images/I/51D7we6m-kL._AA240_.jpg" mce_src="http://ec1.images-amazon.com/images/I/51D7we6m-kL._AA240_.jpg"&gt; &lt;/P&gt;
&lt;P&gt;I have to buy this full-price since I can't order book from the company anymore. Actually I ordered it from my admin 2 months ago and nothing came (テクスチャの位). Maybe they know I'm already leaving :-). That could save me $25 and now I'm $25 poorer.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4906382" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF 3d" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF+3d/default.aspx" /></entry><entry><title>Last blog post here...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/09/12/last-blog-post-here.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/09/12/last-blog-post-here.aspx</id><published>2007-09-12T10:11:00Z</published><updated>2007-09-12T10:11:00Z</updated><content type="html">&lt;P&gt;This should be my last blog post here at MSDN blog. 9/14/2007 is my last day at Microsoft and if you know me or would like to contact me or would like to chat about UI/UX technologies - email me at &lt;A href="mailto:kenny.lim@frogdesign.com"&gt;kenny.lim@frogdesign.com&lt;/A&gt;. I'm still based in Seattle, WA.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Thank you.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4876412" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="Departure" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/Departure/default.aspx" /></entry><entry><title>Given a point, how to get the element at that coordinate?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/08/30/given-a-point-how-to-get-the-element-at-that-coordinate.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/08/30/given-a-point-how-to-get-the-element-at-that-coordinate.aspx</id><published>2007-08-30T20:02:00Z</published><updated>2007-08-30T20:02:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>GetPointAtFractionLength</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/04/04/getpointatfractionlength.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/04/04/getpointatfractionlength.aspx</id><published>2007-04-05T08:33:00Z</published><updated>2007-04-05T08:33:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>PresentationSource</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/03/09/presentationsource.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/03/09/presentationsource.aspx</id><published>2007-03-10T06:16:00Z</published><updated>2007-03-10T06:16:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>"People Near Me" in Vista.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/02/25/people-near-me-in-vista.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/02/25/people-near-me-in-vista.aspx</id><published>2007-02-26T07:11:00Z</published><updated>2007-02-26T07:11:00Z</updated><content type="html">&lt;P&gt;Browsing around the my Windows Vista at home, I saw this "people near me" icon. Reading more about it, it's a new capability of Peer to peer networking built into Windows Vista. It allows you to connect to literally people near you in the airport, in a meeting room, starbucks etc.&lt;/P&gt;
&lt;P&gt;More information about this feature can be found at:&lt;BR&gt;&lt;A href="http://www.microsoft.com/technet/network/p2p/pnm.mspx"&gt;http://www.microsoft.com/technet/network/p2p/pnm.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In addition, it comes with a set of APIs - p2p.lib, p2p.dll and header file in p2p.h.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1760564" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="Vista" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/Vista/default.aspx" /></entry><entry><title>Get notification from WPF dependency system</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/02/08/get-notification-from-wpf-dependency-system.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/02/08/get-notification-from-wpf-dependency-system.aspx</id><published>2007-02-08T11:10:00Z</published><updated>2007-02-08T11:10:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>.NET Book Zero</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/01/27/net-book-zero.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/27/net-book-zero.aspx</id><published>2007-01-28T10:16:00Z</published><updated>2007-01-28T10:16:00Z</updated><content type="html">&lt;P&gt;A free book from Petzold.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;What the C or C++ Programmer Needs to Know About C# and the .NET Framework&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Available in XPS and PDF. &lt;/STRONG&gt;&lt;A href="http://www.charlespetzold.com/dotnet/index.html"&gt;&lt;STRONG&gt;http://www.charlespetzold.com/dotnet/index.html&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1545976" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="C#" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/C_2300_/default.aspx" /></entry><entry><title>More WPF 3D playing..</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/01/23/more-wpf-3d-playing.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/23/more-wpf-3d-playing.aspx</id><published>2007-01-24T09:44:00Z</published><updated>2007-01-24T09:44:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&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;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;The hardest thing about creating 3D is&amp;nbsp;where&amp;nbsp;to&amp;nbsp;source my MeshGeometry3D data. That's the TriangleIndices, Normals&amp;nbsp;and Positions. These numbers are enormous. Lucky thing there are tools (reading &lt;A href="http://blogs.msdn.com/tims/" mce_href="http://blogs.msdn.com/tims/"&gt;Tim's blog&lt;/A&gt;), I found &lt;A class="" href="http://www.erain.com/" mce_href="http://www.erain.com"&gt;ZAM 3D&lt;/A&gt; and other conversion utilities. This list is priceless. Other than this Mesh3D thingy, I found that 3D in XAML is very straight forward, just like normal 2D XAML.&lt;/SPAN&gt; 
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;Using the tool, I'm dragging in a &lt;A href="http://en.wikipedia.org/wiki/Torus" mce_href="http://en.wikipedia.org/wiki/Torus"&gt;Torus&lt;/A&gt;&amp;nbsp;model and copy to XAML. Grab those Meshes and I play with brushes, textures,&amp;nbsp;transforms, rotation, cameras etc.. and you got a nice looking 3D&amp;nbsp;XAML :-)&amp;nbsp;Finally, I&amp;nbsp;got it to look like a&amp;nbsp;rotating &lt;A class="" href="http://en.wikipedia.org/wiki/Jade" mce_href="http://en.wikipedia.org/wiki/Jade"&gt;Jade&lt;/A&gt; ring.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Segoe UI','sans-serif'"&gt;The XAML is posted&amp;nbsp;at &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=275311" mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=275311"&gt;Channel9&lt;/A&gt;&amp;nbsp;and it looks like:&lt;/SPAN&gt;&lt;/P&gt;&lt;IMG src="http://channel9.msdn.com/Photos/275311.jpg"&gt; &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1520071" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF 3d" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF+3d/default.aspx" /></entry><entry><title>WPF 3d going mainstream?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/01/21/wpf-3d-going-mainstream.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/21/wpf-3d-going-mainstream.aspx</id><published>2007-01-22T00:58:00Z</published><updated>2007-01-22T00:58:00Z</updated><content type="html">&lt;P&gt;I read Petzold's blog from time to time and I realized recently he has posted a lot of good 3d content.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.charlespetzold.com/blog/2006/12/140114.html" mce_href="http://www.charlespetzold.com/blog/2006/12/140114.html"&gt;http://www.charlespetzold.com/blog/2006/12/140114.html&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.charlespetzold.com/blog/2006/12/160115.html"&gt;http://www.charlespetzold.com/blog/2006/12/160115.html&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.charlespetzold.com/blog/2006/12/171020.html" mce_href="http://www.charlespetzold.com/blog/2006/12/171020.html"&gt;http://www.charlespetzold.com/blog/2006/12/171020.html&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.charlespetzold.com/blog/2006/12/220812.html" mce_href="http://www.charlespetzold.com/blog/2006/12/220812.html"&gt;http://www.charlespetzold.com/blog/2006/12/220812.html&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.charlespetzold.com/blog/2007/01/190146.html" mce_href="http://www.charlespetzold.com/blog/2007/01/190146.html"&gt;http://www.charlespetzold.com/blog/2007/01/190146.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and finally it's coming WPF 3d book by Petzold.&lt;BR&gt;&lt;A href="http://www.charlespetzold.com/blog/2006/12/270206.html" mce_href="http://www.charlespetzold.com/blog/2006/12/270206.html"&gt;http://www.charlespetzold.com/blog/2006/12/270206.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;5-6 years ago, there's a trend to have app written in irregular window, layered window,&amp;nbsp;pixel opacity&amp;nbsp;or different chrome. Then came a wave of products doing just that. I think what's coming next (in my own opinion) is the application have multiple layers and 1..n layer that display 3d visuals. For example, a TV app with tv controls in another layer in a Viewport3d floating in 3d or even animating a bit :-)&lt;/P&gt;
&lt;P mce_keep="true"&gt;can't wait for his 3d book ...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1504201" width="1" height="1"&gt;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF 3d" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF+3d/default.aspx" /></entry><entry><title>Hmmm... WPF popup is always TOP_MOST</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/01/11/hmmm-wpf-popup-is-always-top-most.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/11/hmmm-wpf-popup-is-always-top-most.aspx</id><published>2007-01-12T06:05:00Z</published><updated>2007-01-12T06:05:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>My WPF Hobby project for 2006 "Portfolio Delta"... a little late.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2007/01/09/my-wpf-hobby-project-for-2006-a-little-late.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2007/01/09/my-wpf-hobby-project-for-2006-a-little-late.aspx</id><published>2007-01-09T20:49:00Z</published><updated>2007-01-09T20:49:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>1 line XAML challenge and Popup ....</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2006/08/18/1-line-xaml-challenge-and-popup.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2006/08/18/1-line-xaml-challenge-and-popup.aspx</id><published>2006-08-19T09:37:00Z</published><updated>2006-08-19T09:37:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>Tiling with VisualBrush - WPF Beta 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2006/06/20/tiling-with-visualbrush-wpf-beta-2.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2006/06/20/tiling-with-visualbrush-wpf-beta-2.aspx</id><published>2006-06-20T10:17:00Z</published><updated>2006-06-20T10:17:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /></entry><entry><title>Calendar Printing Assistant for Outlook 2007</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/digitalnetbizz/archive/2006/06/19/calendar-printing-assistant-for-outlook-2007.aspx" /><id>http://blogs.msdn.com/digitalnetbizz/archive/2006/06/19/calendar-printing-assistant-for-outlook-2007.aspx</id><published>2006-06-20T07:54:00Z</published><updated>2006-06-20T07:54:00Z</updated><content type="html">&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;</content><author><name>digitalnetbizz</name><uri>http://blogs.msdn.com/members/digitalnetbizz.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/WPF/default.aspx" /><category term="Office" scheme="http://blogs.msdn.com/digitalnetbizz/archive/tags/Office/default.aspx" /></entry></feed>