<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://bugvanquisher.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fbugvanquisher.spaces.live.com%2fcategory%2fWPF%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bug Vanquisher: WPF</title><description /><link>http://bugvanquisher.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catWPF</link><language>en-US</language><pubDate>Thu, 14 Aug 2008 19:03:07 GMT</pubDate><lastBuildDate>Thu, 14 Aug 2008 19:03:07 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://bugvanquisher.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-2671408739996403191</live:id><live:alias>bugvanquisher</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Deep Dive into WPF Graphics-The Lost One</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1574.entry</link><description>&lt;p style="text-align:justify"&gt;Just a (minor) revival to the forgotten series I was supposed to write.  &lt;p style="text-align:justify"&gt;With service pack 1 for .netfx 3.5, milcore.dll no longer provides the low level rendering primitives for WFP. Instead to preserve compatibility with DWM, all new APIs are provided in wpfgfx.dll, which has some minor inclusions (yet unknown to the world, because WPF team refuses to disclose any information).  &lt;p style="text-align:justify"&gt;This blog &lt;a href="http://blogs.msdn.com/jgoldb/archive/2008/05/15/what-s-new-for-performance-in-wpf-in-net-3-5-sp1.aspx"&gt;post&lt;/a&gt; reasons about the decision as:  &lt;blockquote&gt;   &lt;p style="text-align:justify"&gt;“The reason is that WPF 3.5 SP1 now uses a new graphics DLL (wpfgfx.dll) and certain changes could not be made to Vista’s existing graphics DLL (milcore.dll) that is also used by DWM.” &lt;/blockquote&gt;  &lt;p style="text-align:justify"&gt;Features include things like new Effects framework (H/W accelerated this time, not the weenie S/W rendered loonies), integration with DirectX surfaces [all I can remember right now :)].  &lt;p style="text-align:justify"&gt;Apart from that, all DllImports which used to be like DllImport( “milcore.dll” ) now reference the new wpfgfx.dll.  &lt;p style="text-align:justify"&gt;P.S.: I SO hate this post. I don’t do this sort of news aggregator things! Especially when it is so late.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Deep+Dive+into+WPF+Graphics-The+Lost+One&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1574.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1574.entry</guid><pubDate>Tue, 22 Jul 2008 16:32:20 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!1574/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1574.entry#comment</wfw:comment><dcterms:modified>2008-07-22T16:32:20Z</dcterms:modified></item><item><title>Application+WPF=Sexy Experience!</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1486.entry</link><description>&lt;p&gt;I don't talk like that, ever. But the application deserves that.  &lt;p&gt;&lt;a title="http://www.frogdesign.com/case-study/lawson-smart-client.html" href="http://www.frogdesign.com/case-study/lawson-smart-client.html"&gt;http://www.frogdesign.com/case-study/lawson-smart-client.html&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Application%2bWPF%3dSexy+Experience!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1486.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1486.entry</guid><pubDate>Thu, 10 Jan 2008 18:02:30 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!1486/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1486.entry#comment</wfw:comment><dcterms:modified>2008-01-10T18:02:30Z</dcterms:modified></item><item><title>Yahoo Messenger For Windows Vista</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1448.entry</link><description>&lt;p style="text-align:justify"&gt;Or is it just that? &lt;p style="text-align:justify"&gt;If you have netfx 3.0 (or greater) installed on, you &lt;strong&gt;do not&lt;/strong&gt; &lt;strong&gt;need &lt;/strong&gt;Windows Vista to run it. Here is proof: &lt;p&gt;&lt;a href="http://tkfiles.storage.msn.com/y1puSROu7dZTKSYHMA6-N4i4N7rIfv-9W_MDlFDEGwTwgPA9F4oEl-dr36BhBgxeKEZsiGwev7eVxg?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=480 alt=image src="http://tkfiles.storage.msn.com/y1puSROu7dZTKT7AqHYTBUokf7m-_kd3vLN9wY6FhUwZGZHbiWel3_UMmUrVjOLtbsczR5POiPv38g?PARTNER=WRITER" width=582 border=0&gt;&lt;/a&gt; &lt;p style="text-align:justify"&gt;The other window is irrelevant apart from the fact that it really is Windows XP. The only thing missing from Yahoo Messenger (for WPF) is that it sticks &amp;quot;For Windows Vista&amp;quot; everywhere while it is entirely capable of running on any system having the required runtime.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Yahoo+Messenger+For+Windows+Vista&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1448.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1448.entry</guid><pubDate>Sat, 08 Dec 2007 10:00:07 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!1448/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!1448.entry#comment</wfw:comment><dcterms:modified>2007-12-08T10:00:07Z</dcterms:modified></item><item><title>Tim Sneath : Announcing Family.Show 2.0</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!358.entry</link><description>&lt;p&gt;&lt;a title="Tim Sneath : Announcing Family.Show 2.0" href="http://blogs.msdn.com/tims/archive/2007/07/17/announcing-family-show-2-0.aspx?CommentPosted=true#commentmessage"&gt;Tim Sneath : Announcing Family.Show 2.0&lt;/a&gt;  &lt;p&gt;Really cool application.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Tim+Sneath+%3a+Announcing+Family.Show+2.0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!358.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!358.entry</guid><pubDate>Wed, 18 Jul 2007 07:16:38 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!358/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!358.entry#comment</wfw:comment><dcterms:modified>2007-07-18T07:16:38Z</dcterms:modified></item><item><title>Get indulged</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!332.entry</link><description>&lt;a href="http://tkfiles.storage.msn.com/y1pVAGHKHFyOnfbRMODwZaIHZjpgjvZWjt7k_S_mk0p7uII6B-VDSAz7RZOlh-vlhcE"&gt;&lt;img style="border-width:0px" alt=a src="http://tkfiles.storage.msn.com/y1pVAGHKHFyOne81sArPtUhxvZoCQ5R-lbO1njqG5gmE6na5Y4Xv31AE6AF3OwhMp60" border=0 height=253 width=353&gt;&lt;/a&gt;  &lt;p&gt; &lt;a href="http://tkfiles.storage.msn.com/y1pVAGHKHFyOnd_bjersZFiXxGYgQgO4jPy4ksQW1UHqmh1tEYSalzqprxh38QCZ5ZK"&gt;&lt;img style="border-width:0px" alt=b src="http://tkfiles.storage.msn.com/y1pVAGHKHFyOnd5BHshd9ipenBF1eCJ3YiMBjHz9XRYMgq4euMLUDFG9QTHTCrKhrhe" border=0 height=269 width=347&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pVAGHKHFyOnd0KDqEiwM7paEibuZc_ZYBDbvh1Scoqn1RGAPROkRHW48QVc3PSe1j"&gt;&lt;img style="border-width:0px" alt=c src="http://tkfiles.storage.msn.com/y1pVAGHKHFyOncLGMyKBmSF93GqUcFzLPViXmO2NP0vjQ7iR2-_kj1t4ie9WrrLPAob" border=0 height=276 width=360&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://tkfiles.storage.msn.com/y1pVAGHKHFyOndN3tiw2R5m_3_OKpsNDrcrVLU6GaBDcZHTM52aUDsvyLkKNaY98WZV"&gt;&lt;img style="border-width:0px" alt=d src="http://tkfiles.storage.msn.com/y1pVAGHKHFyOnd-JVPbepNdWAcEli8GiEHF9eEssikybAyiMphWFr4BQJW-d9xsTdFM" border=0 height=280 width=367&gt;&lt;/a&gt; &lt;p&gt; Get &lt;a href="http://www.spacetime3d.com"&gt;spacetime3d&lt;/a&gt;. Get indulged. The wonders of 3D browsing hit desktops for the first time. I wonder if someone can do a similar thing in WPF, now with the &lt;a href="http://blogs.msdn.com/wpf3d/rss_tag_3DTools.xml" target="_blank"&gt;InteractiveVisual3D&lt;/a&gt; library?&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Get+indulged&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!332.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!332.entry</guid><pubDate>Wed, 06 Jun 2007 13:25:27 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!332/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!332.entry#comment</wfw:comment><dcterms:modified>2007-06-06T13:36:00Z</dcterms:modified></item><item><title>Deep drive into WPF graphics internals Part 1</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!288.entry</link><description>&lt;p style=""&gt;[I cannot make up my mind how to best start this post. Instead of delaying it for another month, I opted to post it anyway. &lt;strong&gt;&lt;font color="#00ffff"&gt;&amp;lt;warning&amp;gt;Take it with a pound of salt, I may be terribly wrong in this article.&amp;lt;/warning&amp;gt;&lt;/font&gt;&lt;/strong&gt;] &lt;p style=""&gt;A few pictures from MSDN should be the best start. They show the interaction between Win32 provided API, DirectX and WPF. &lt;ol&gt; &lt;li&gt;How WPF leverages Windows Platform  &lt;p style="margin:0in"&gt;&lt;a href="http://tkfiles.storage.msn.com/x1pyJyjWTwxhH0V84ol_BkD5l0bQgRIBmXXcJPokyjUM4u56MxFLGZaD_zLTsqV2YtOb0yS2LkPcSpMfb_CwHuKkPuyQlTYLiupgv_ccRaemTQ"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=240 src="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QdjIg1lneQgYRsAw4fPBgO0-4j1GQ3nrLEou_Noqx73ATHa9m7ppMPNzjZXrB249Ick3H-7e0FaawPe1na_Li5YcyvOK8kq3GHlKSpVhT92gw" width=194 border=0&gt;&lt;/a&gt; &lt;li&gt;The Visual tree  &lt;p style="margin:0in"&gt;&lt;a href="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QepeFb-f5vQgHp9PrVR9QY3_YEblC2uGxscCFxSBSYBdJED7g00oBNTcH8joGXk-jMDzN4FlEqN-UwyV7Ph-5RNdxmKdaG1fDB-GpLZ_1KeDA"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=100 src="http://tkfiles.storage.msn.com/x1pyJyjWTwxhH0V84ol_BkD5tMQA8bqXISsQXcDFqAgVvmCQPVRLuFbRDa4ZU90nBpcZHpOfa7P-oREUq1JdfsR9_KCFSorlTbvyBf-Z-tfRNI" width=240 border=0&gt;&lt;/a&gt; &lt;li&gt;How WPF draws your application.  &lt;p style="margin:0in"&gt;&lt;a href="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0Qd_Ai8s06gWhcZS1zm4lB0oskR3Rg5WbKwEMhKC96-m0TCHK2SDzalUvLtJ37gZYtWa0PCoI0OkpqBe87AhhloHa9J4KxDs6Ewb8k5I08K6sA"&gt;&lt;img height=169 src="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0Qc1qk5LNoYcOkCYJVkq3_awM6W7xh7SOTpluj6wxhwnNFDvyz4yaRomsegT6molBPZN5JYNpmyK5d0j6Hk2N-JLetXUg7HFQB-h-KNcNoZ-6A" width=240&gt;&lt;/a&gt;&lt;/ol&gt; &lt;p style=""&gt;These articles are mainly focused on graphics implementation in PresentationFramework, PresentationCore and WindowsBase. The unmanaged part will discuss milcore.dll, dwm.exe, dwmapi.exe, user32.dll's redirection APIs. &lt;p style=""&gt;To dig into all of this, we need a working application. This code will be used through out this post.&lt;span style="color:lime;background-color:navy"&gt;&lt;span style="color:white"&gt;using&lt;/span&gt; System;&lt;br&gt;&lt;span style="color:white"&gt;using&lt;/span&gt; System.Windows;&lt;br&gt;&lt;br&gt;&lt;span style="color:white"&gt;namespace&lt;/span&gt; WPF&lt;br&gt;{&lt;br&gt;     &lt;span style="color:white"&gt;class&lt;/span&gt; &lt;span style="color:teal"&gt;App&lt;/span&gt; : &lt;span style="color:teal"&gt;Window&lt;/span&gt;&lt;br&gt;     {&lt;br&gt;         [&lt;span style="color:teal"&gt;STAThread&lt;/span&gt;]&lt;br&gt;        &lt;span style="color:white"&gt;public static void&lt;/span&gt; Main( )&lt;br&gt;        {&lt;br&gt;            ( &lt;span style="color:white"&gt;new&lt;/span&gt; &lt;span style="color:teal"&gt;Application&lt;/span&gt;( ) ).Run( &lt;span style="color:white"&gt;new&lt;/span&gt; &lt;span style="color:teal"&gt;App&lt;/span&gt;( ) );&lt;br&gt;        }  &lt;p&gt;         &lt;span style="color:white"&gt;protected override void&lt;/span&gt; OnRender( System.Windows.Media.&lt;span style="color:teal"&gt;DrawingContext&lt;/span&gt; drawingContext )&lt;br&gt;        {&lt;br&gt;            System.Diagnostics.&lt;span style="color:teal"&gt;StackTrace&lt;/span&gt; st = &lt;span style="color:white"&gt;new&lt;/span&gt; System.Diagnostics.&lt;span style="color:teal"&gt;StackTrace&lt;/span&gt;( System.Threading.&lt;span style="color:teal"&gt;Thread&lt;/span&gt;.CurrentThread , &lt;span style="color:white"&gt;true&lt;/span&gt; );&lt;br&gt;             &lt;span style="color:teal"&gt;Console&lt;/span&gt;.WriteLine( st.ToString( ) );&lt;br&gt;            &lt;span style="color:white"&gt;base&lt;/span&gt;.OnRender( drawingContext );&lt;br&gt;         }&lt;br&gt;     }&lt;br&gt;}&lt;/span&gt; &lt;p&gt;As the name suggest, OnRender is the only method called to do all the drawing. A debug tip shows that it is really an object of type System.Windows.Media.VisualDrawingContext.  &lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QeK0duas0nB_69shtADVnDIZayRiOLssQeh6uqs9duyIJeQHkYqN4j5LihK8gIJs4tZsdK2LywXAvqTCrtkS5zp6a2YbfdZPfhrvBIdFHBzjA"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=41 src="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QdSMmbUiGXAZF5vPharv1b935LxyKR0HEoJNGtbwfqTEENxbKM0xVEtDI2x1TT12pD_tJy5RlDxbgiL7t0glwpnYFxrgM_YVZKwhMmq8Enmwg" width=609 border=0&gt;&lt;/a&gt; &lt;p&gt;Fire up Reflector and have a look at this class: &lt;p&gt;&lt;a href="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QcfMKCQelo9-rTK25Fi4lYzgRjYVT4R63YtgON8TyS3tBdtP0Q1XgmAP4KIV4bVLREbEfk_tgBY4122K_Zc0yOXEpvWkmqe7vXKaVa0vFu-uA"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=179 src="http://tk1.storage.msn.com/x1pX4aYqvB-_dZyOINixfeUWxmyikOuyl9_g6dWPA1G0QdeiTLs3NvtCxH3bAvNHcUq6cNg9up2KH0_c0fdcWVI_VECKIHEZedzatSd5VqPnwj0EsJu06DGLPgdvzy-tRPCrbsbqo5GU5fU8XXQOUOFBQ" width=524 border=0&gt;&lt;/a&gt; &lt;p style="text-align:justify"&gt;As we see VisualDrawingContext does not contain many things. _ownerVisual is any Visual having an associated VisualDrawingContext and CloseCore just calls RenderClose on the contained Visual. &lt;a href="http://msdn2.microsoft.com/ms653182.aspx"&gt;DrawingContext&lt;/a&gt; is the base class which defines the characteristics of what can be drawn and how. &lt;a href="http://msdn2.microsoft.com/ms615925.aspx"&gt;DispatcherObject&lt;/a&gt; is of no concern here, but in the going, it is essentially a wrapper around System.Threading.Thread and provides some services which check whether, through VerifyAccess and CheckAccess, the caller is on same thread as UI thread or not. &lt;p style="text-align:justify"&gt;Furthermore, DrawingContext is abstract, therefore, an instance can never be created. RenderDataDrawingContext has an internal constructor. Same goes for its instance too. A transitive closure with the help of Reflector shows that there is no other way to create an instance publically without going through RenderOpen, which returns an instance of VisualDrawingContext. &lt;p style="text-align:justify"&gt;You may have noticed by now that I skipped RenderDataDrawingContext's description. Well that's the topic for next post.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Deep+drive+into+WPF+graphics+internals+Part+1&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!288.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!288.entry</guid><pubDate>Mon, 23 Apr 2007 07:02:32 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!288/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!288.entry#comment</wfw:comment><dcterms:modified>2007-04-23T07:14:19Z</dcterms:modified></item><item><title>Must Read</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!257.entry</link><description>&lt;p&gt;&amp;lt;warning&amp;gt; Geek stuff. Read &lt;a href="http://blogs.msdn.com/tims/comments/2005929.aspx"&gt;this&lt;/a&gt; immediately. &amp;lt;/warning&amp;gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+Must+Read&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!257.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!257.entry</guid><pubDate>Wed, 04 Apr 2007 07:00:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!257/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!257.entry#comment</wfw:comment><dcterms:modified>2007-04-07T09:56:23Z</dcterms:modified></item><item><title>An interesting presentation</title><link>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!254.entry</link><description>&lt;div&gt;
&lt;p&gt;WFP3D team has posted a very &lt;a href="http://blogs.msdn.com/wpf3d/archive/2007/03/29/bootcamp-lecture.aspx"&gt;interesting presentation&lt;/a&gt; on their blog. Have a look!&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-2671408739996403191&amp;page=RSS%3a+An+interesting+presentation&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=bugvanquisher.spaces.live.com&amp;amp;GT1=bugvanquisher"&gt;</description><comments>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!254.entry#comment</comments><guid isPermaLink="true">http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!254.entry</guid><pubDate>Fri, 30 Mar 2007 06:59:49 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://bugvanquisher.spaces.live.com/blog/cns!DAED3FE79AA3FA09!254/comments/feed.rss</wfw:commentRss><wfw:comment>http://bugvanquisher.spaces.live.com/Blog/cns!DAED3FE79AA3FA09!254.entry#comment</wfw:comment><dcterms:modified>2007-03-30T06:59:49Z</dcterms:modified></item></channel></rss>