<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>WPF WTFs</title>
	<atom:link href="http://jerryclin.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jerryclin.wordpress.com</link>
	<description>Tips, tricks, and howto&#039;s for those &#34;WTF?&#34; moments in WPF</description>
	<lastBuildDate>Thu, 28 May 2009 04:38:41 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='jerryclin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a9fb3c43fa1b229d3f0957776b50e64d?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>WPF WTFs</title>
		<link>http://jerryclin.wordpress.com</link>
	</image>
			<item>
		<title>CruiseControl.NET Misadventures</title>
		<link>http://jerryclin.wordpress.com/2009/05/28/cruisecontrol-net-misadventures/</link>
		<comments>http://jerryclin.wordpress.com/2009/05/28/cruisecontrol-net-misadventures/#comments</comments>
		<pubDate>Thu, 28 May 2009 04:38:41 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[CruiseControl.NET]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[page not found]]></category>
		<category><![CDATA[web dashboard]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=79</guid>
		<description><![CDATA[For the past week, I&#8217;ve been pretending to be a build engineer and trying to set up CruiseControl.NET to automate our builds. On previous teams, I&#8217;ve been fortunate to have a dedicated build engineer dedicated solely to this type of task, and after trying to set up CC.NET myself, I can honestly say I appreciate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=79&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For the past week, I&#8217;ve been pretending to be a build engineer and trying to set up <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NE</a>T to automate our builds. On previous teams, I&#8217;ve been fortunate to have a dedicated build engineer dedicated solely to this type of task, and after trying to set up CC.NET myself, I can honestly say I appreciate what they do &#8211; this entire process has been *NSFW* *NSFW*.</p>
<p>Case in point: CC.NET installs and sets up a web dashboard for teams to be able to look at the status of their builds from a browser. Ideally, it would work out of the box, but we know in reality that&#8217;s often not the case. Even after following the detailed <a href="http://confluence.public.thoughtworks.org/display/CCNET/Installing+the+Web+Dashboard">instructions </a>to set up the dashboard manually, I kept getting a Page Not Found error.</p>
<p>After pouring through the blogs and forums without luck, and nearly breaking down in tears, I remembered that the CC.NET server is supposed to generate the dashboard&#8217;s ASP.NET pages, and I chanced on this setting in IIS:</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-78" title="CCNet_Dashboard" src="http://jerryclin.files.wordpress.com/2009/05/ccnet_dashboard.png?w=540&#038;h=277" alt="CCNet_Dashboard" width="540" height="277" /></p>
<p>After allowing ASP.NET extensions in IIS, the dashboard rendered correctly.</p>
 Tagged: 404, CruiseControl.NET, page not found, web dashboard <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=79&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2009/05/28/cruisecontrol-net-misadventures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>

		<media:content url="http://jerryclin.files.wordpress.com/2009/05/ccnet_dashboard.png" medium="image">
			<media:title type="html">CCNet_Dashboard</media:title>
		</media:content>
	</item>
		<item>
		<title>M-V-VM</title>
		<link>http://jerryclin.wordpress.com/2009/01/07/m-v-vm/</link>
		<comments>http://jerryclin.wordpress.com/2009/01/07/m-v-vm/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 18:49:21 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=68</guid>
		<description><![CDATA[Happy New Year! Hope 2009 is going well for everyone so far. Sorry for the lack of updates on the site. I was busy for the past few months preparing for Jing Pro&#8217;s release, but [unfortunately] most of my development was not WPF related.
Also, I have been learning Cocoa and iPhone development during my free [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=68&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Happy New Year! Hope 2009 is going well for everyone so far. Sorry for the lack of updates on the site. I was busy for the past few months preparing for <a href="http://www.jingproject.com">Jing Pro</a>&#8217;s release, but [unfortunately] most of my development was not WPF related.</p>
<p>Also, I have been learning Cocoa and iPhone development during my free time, and hope to blog about my experience migrating to Mac development in the coming weeks.</p>
<p>Now that I am somewhat familiar with Mac development, one aspect that I&#8217;ve really become endeared to is how Apple adheres to the <a href="http://www.cimgf.com/2008/07/29/cocoa-tutorial-windows-oop-vs-cocoa-mvc/">MVC</a> pattern &#8211; it&#8217;s really convinced me it&#8217;s a saner way to make stable, decently maintainable code. This prompted me to start thinking about how to follow MVC in WPF development.</p>
<p>Luckily I didn&#8217;t have to figure anything out. Karl Shifflett, one of the guys who makes Mole, has a series of <a href="http://karlshifflett.wordpress.com/mvvm/">posts</a> on a variation of MVC called M-V-VM. M-V-VM stands for Model-View-ViewModel. From what I understand, like MVC, it is a clean way to separate the logic for the UI and your business/data models. The View would be represented by your XAML, the Model is still your data/business stuff. In place of the Controller is the ViewModel, which provides an abstraction of the Model. This is accomplished by exposing properties, implemented with <span style="color:#3366ff;">IPropertyNotifyChanged</span>, and <span style="color:#000000;">commands</span> that your XAML files bind to. The ViewModels then, become the main agents in manipulating your data models. I likes!</p>
<p>Theoretically, this virtually eliminates the need for code-behind logic, freeing UI designers to not have to write code, makes unit-testing because all the logic and behavior has been isolated from the XAML and rendering related objects. Another nice benefit is eliminating almost all value converters, since your XAML would bind directly to properties in the ViewModel. I would love to try this on my next project, but until then Karl has a nice diagram summarizing M-V-VM here:</p>
<p><a href="http://karlshifflett.wordpress.com/2008/11/08/learning-wpf-m-v-vm/">http://karlshifflett.wordpress.com/2008/11/08/learning-wpf-m-v-vm/</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=68&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2009/01/07/m-v-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>
	</item>
		<item>
		<title>Restarting a WPF app</title>
		<link>http://jerryclin.wordpress.com/2008/12/17/restarting-a-wpf-app/</link>
		<comments>http://jerryclin.wordpress.com/2008/12/17/restarting-a-wpf-app/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 19:32:38 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[restart]]></category>
		<category><![CDATA[restarting]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=62</guid>
		<description><![CDATA[We recently needed a way to easily restart a running Jing process, for reasons that will become apparent in an upcoming release, to which I stumbled on this entry from one of Rob Reylea&#8217;s blogs:
http://rrelyea.spaces.live.com/Blog/cns!167AD7A5AB58D5FE!2258.entry
Essentially, you make these two calls to restart a running WPF process:
System.Windows.Forms.Application.Restart();
System.Windows.Application.Current.Shutdown();
Be careful though. After confirming with Reflector, calling Shutdown() is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=62&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We recently needed a way to easily restart a running <a href="http://www.jingproject.com">Jing </a>process, for reasons that will become apparent in an upcoming release, to which I stumbled on this entry from one of Rob Reylea&#8217;s blogs:</p>
<p><a href="http://rrelyea.spaces.live.com/Blog/cns!167AD7A5AB58D5FE!2258.entry">http://rrelyea.spaces.live.com/Blog/cns!167AD7A5AB58D5FE!2258.entry</a></p>
<p>Essentially, you make these two calls to restart a running WPF process:</p>
<p style="padding-left:30px;">System.Windows.Forms.<span style="color:#3366ff;">Application</span>.Restart();</p>
<p style="padding-left:30px;">System.Windows.<span style="color:#3366ff;">Application</span>.Current.Shutdown();</p>
<p>Be careful though. After confirming with <a href="http://www.red-gate.com/products/reflector/">Reflector</a>, calling Shutdown()<strong> </strong>is an <strong>asynchronous </strong>call, so it&#8217;s possible to have the new instance of your process running before the current one has terminated, so make sure your app has all your data saved/in a safe state before you make these calls.</p>
 Tagged: restart, restarting <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=62&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/12/17/restarting-a-wpf-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>
	</item>
		<item>
		<title>Artifacting on Vista</title>
		<link>http://jerryclin.wordpress.com/2008/08/19/artifacting-on-vista/</link>
		<comments>http://jerryclin.wordpress.com/2008/08/19/artifacting-on-vista/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 19:23:39 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[artifacting]]></category>
		<category><![CDATA[layered-windows]]></category>
		<category><![CDATA[software rendering]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=43</guid>
		<description><![CDATA[Last week tech support kept telling us that Vista users were reporting really weird artifacts in the Launcher and our Preferences windows:


Since those two windows are layered windows, and layered windows have had performance problems in Vista until .NET 3.5 SP1, I wondered about it and stumbled on this MSDN article:



HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration
DWORD



The disable hardware acceleration option [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=43&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last week tech support kept telling us that Vista users were reporting really weird artifacts in the Launcher and our Preferences windows:</p>
<p><a href="http://jerryclin.files.wordpress.com/2008/08/launcher1.png"><img class="alignnone size-medium wp-image-47" src="http://jerryclin.files.wordpress.com/2008/08/launcher1.png?w=185&#038;h=133" alt="" width="185" height="133" /></a></p>
<p><a href="http://jerryclin.files.wordpress.com/2008/08/splash1.png"><img class="alignnone size-medium wp-image-48" src="http://jerryclin.files.wordpress.com/2008/08/splash1.png?w=300&#038;h=300" alt="" width="300" height="300" /></a></p>
<p>Since those two windows are layered windows, and layered windows have had performance problems in Vista until .NET 3.5 SP1, I wondered about it and stumbled on this MSDN <a href="http://msdn.microsoft.com/en-us/library/aa970912.aspx">article</a>:</p>
<table border="0" width="50%">
<tbody>
<tr>
<td><span class="code">HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration</span></td>
<td>DWORD</td>
</tr>
</tbody>
</table>
<p><em>The <strong>disable hardware acceleration option</strong> enables you to turn off hardware acceleration for debugging and test purposes. When you see rendering artifacts in an application, try turning off hardware acceleration. If the artifact disappears, the problem might be with your video driver. </em></p>
<p><em> The <strong>disable hardware acceleration option</strong> is a DWORD value that is either 0 or 1. A value of 1 disables hardware acceleration. A value of 0 enables hardware acceleration, provided the system meets hardware acceleration requirements; for more information, see</em></p>
<p>After spending some time convincing Tech Support to have the users try setting this registry key, forcing software rendering in WPF took care of the rendering problems. So we had the users update their graphics card drivers and hardware acceleration worked again.</p>
<p>So if you are not running on .NET 3.5 SP1 and see artifacts and rendering problems in layered windows on Vista, force software rendering to see if the issue might be caused by a bug in the graphics card&#8217;s driver.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=43&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/08/19/artifacting-on-vista/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>

		<media:content url="http://jerryclin.files.wordpress.com/2008/08/launcher1.png?w=185" medium="image" />

		<media:content url="http://jerryclin.files.wordpress.com/2008/08/splash1.png?w=300" medium="image" />
	</item>
		<item>
		<title>Jing Listed on PC World&#8217;s Top 100 Products!</title>
		<link>http://jerryclin.wordpress.com/2008/05/27/jing-listed-on-pc-worlds-top-100-products/</link>
		<comments>http://jerryclin.wordpress.com/2008/05/27/jing-listed-on-pc-worlds-top-100-products/#comments</comments>
		<pubDate>Tue, 27 May 2008 20:28:44 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jing]]></category>
		<category><![CDATA[pc world]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=40</guid>
		<description><![CDATA[This morning, everyone on the Jing team was informed that it made PC World&#8217;s top 100 product list for 2008. Needless to say, we&#8217;re all excited! When we launched about a year ago, we felt that we were onto something by making it simple (and hopefully fun) to take and share screenshots and videos. Although [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=40&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This morning, everyone on the <a href="http://www.jingproject.com">Jing</a> team was informed that it made PC World&#8217;s <a href="http://www.pcworld.com/article/id,146161-page,11-c,electronics/article.html">top 100 product list</a> for 2008. Needless to say, we&#8217;re all excited! When we launched about a year ago, we felt that we were onto something by making it simple (and hopefully <strong>fun</strong>) to take and share screenshots and videos. Although we placed last on the list, it&#8217;s still a great feeling to know that there are people out there who feel the same way we do about this little program.</p>
<p>I know this sounds like an advertisement for Microsoft, but I truly feel that WPF enabled us to make Jing possible. Of course, programmatically taking screenshots is a simple bit-blit with some GDI function calls, but what I&#8217;m talking about is the overall user experience. From the sun splash screen that moves and animates to Jing&#8217;s docked position, to how the sun launcher reacts to the user&#8217;s mouse movement, it was WPF that allowed the team to try and create a program that would be not only useful, but <em>fun</em>. Not only that, but because WPF was built on top of .NET&#8217;s extensive APIs, it allowed us to be iterative, adapt to changing requirements, and encouraged us to be experimental with our UI designs. In other words, it let us be agile. Although we&#8217;ve stretched WPF&#8217;s capabilities, and there are some APIs that really should have a WPF equivalent (Screens *cough*cough*), I tremble thinking of how much more difficult development would be had we stuck with &#8220;good ol&#8217;&#8221; MFC/Win32.</p>
<p style="text-align:center;"><a href="http://jerryclin.files.wordpress.com/2008/05/sunlauncher1.png"><img class="size-full wp-image-42" src="http://jerryclin.files.wordpress.com/2008/05/sunlauncher1.png?w=167&#038;h=86" alt="" width="167" height="86" /></a></p>
<p style="text-align:center;"><em>Sun Launcher, made possible by WPF</em></p>
<p>Here&#8217;s hoping Microsoft keeps promoting and improving WPF, and that we&#8217;ll continue to take advantage of it here on the Jing team <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=40&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/05/27/jing-listed-on-pc-worlds-top-100-products/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>

		<media:content url="http://jerryclin.files.wordpress.com/2008/05/sunlauncher1.png" medium="image" />
	</item>
		<item>
		<title>On Being AWOL</title>
		<link>http://jerryclin.wordpress.com/2008/05/06/on-being-awol/</link>
		<comments>http://jerryclin.wordpress.com/2008/05/06/on-being-awol/#comments</comments>
		<pubDate>Tue, 06 May 2008 17:05:12 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=39</guid>
		<description><![CDATA[Hi,
You may or may have noticed that this blog hasn&#8217;t been updated in a while. Unfortunately I haven&#8217;t been doing any development in WPF for the last two months. On the bright side, there&#8217;s some exciting stuff that we&#8217;re working on for Jing that we can hopefully show you in the next few months. Until [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=39&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi,</p>
<p>You may or may have noticed that this blog hasn&#8217;t been updated in a while. Unfortunately I haven&#8217;t been doing any development in WPF for the last two months. On the bright side, there&#8217;s some exciting stuff that we&#8217;re working on for <a href="http://www.jingproject.com">Jing</a> that we can hopefully show you in the next few months. Until then, thanks for your continued patience, and if things go smoothly, I&#8217;ll be writing articles for this blog on a regular basis again.</p>
<p>Jerry</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=39&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/05/06/on-being-awol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>
	</item>
		<item>
		<title>Embedding PNGs into RTF files</title>
		<link>http://jerryclin.wordpress.com/2008/03/18/embedding-pngs-into-rtf-files/</link>
		<comments>http://jerryclin.wordpress.com/2008/03/18/embedding-pngs-into-rtf-files/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 20:53:58 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[Rich Text Format]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[rtf]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=38</guid>
		<description><![CDATA[Recently I had to implement drag and drop of PNG images in WPF so that if you dragged an image from a WPF app to a document in Word or Outlook, the PNG would be displayed as a part of it. As it turned out, MS Word and Outlook plays well with Rich Text Format, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=38&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently I had to implement drag and drop of PNG images in WPF so that if you dragged an image from a WPF app to a document in Word or Outlook, the PNG would be displayed as a part of it. As it turned out, MS Word and Outlook plays well with Rich Text Format, so I had to figure out how to embed a PNGs into an RTF stream.</p>
<p>The code for this wasn&#8217;t difficult, but finding out how to do it was an adventure. First, I found out the structure that the RTF had to be written as:</p>
<p><span style="color:#ff0000;">{\rtf1\ansi\deff0{\pict\pngblip\picw<span style="color:#3366ff;">X</span>\pich<span style="color:#3366ff;">Y</span></span></p>
<p><span style="color:#ff0000;">*The data for the PNG image converted into hex*</span></p>
<p><span style="color:#ff0000;">}}</span></p>
<p>The first line tells RTF parsers that we have a png embedded (the <span style="color:#ff0000;">\pict\pnblip</span> control words), with <span style="color:#ff0000;">\picw</span> and <span style="color:#ff0000;">\pich</span> describing the pixel width and height of the image (<span style="color:#3366ff;">X</span> and <span style="color:#3366ff;">Y</span>).</p>
<p>Following the that, you write the data representing the PNG file. However, you have to write the PNG in a way that RTF parsers understand. Specifically, you have to convert the binary values that represent the encoded PNG into hexadecimal characters. From looking at example files floating around on the web, I also grouped the hex into separate lines composed of 64 character chunks.</p>
<p>After that, I wrote the footer, <span style="color:#ff0000;">}}<span style="color:#000000;">. All of this was done encoding the final stream as ASCII, since RTF seems to understand that well. That&#8217;s it, I had a valid RTF stream that Word and Outlook could parse.</span></span></p>
<p>As a demonstration to help you get started, I&#8217;ve included a demo app, aptly named PngToRtfConverter. The app is a window asking you to select a PNG file to convert into an RTF file. I&#8217;ve also factored the actual conversion part into helper classes, but note that since this code was for learning/demonstration purposes, so it isn&#8217;t necessarily efficient nor is there extensive error checking.</p>
<p>This demo app was written in Visual Studio 2008:</p>
<p><a href="http://www.box.net/shared/zv6yysz2gu" target="_blank">PngToRtfConverter.zip</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=38&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/03/18/embedding-pngs-into-rtf-files/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>
	</item>
		<item>
		<title>ListBox Grouping and Virtualization</title>
		<link>http://jerryclin.wordpress.com/2008/02/22/listbox-grouping-and-virtualization/</link>
		<comments>http://jerryclin.wordpress.com/2008/02/22/listbox-grouping-and-virtualization/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 21:04:59 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[grouping]]></category>
		<category><![CDATA[lazy-loading]]></category>
		<category><![CDATA[ListBox]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[scrolling]]></category>
		<category><![CDATA[virtualizing]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=30</guid>
		<description><![CDATA[I would like to give a big &#8220;Thanks!&#8221; to Microsoft&#8217;s Ben Carter for providing me the high-level solution to this difficult problem, and making work over the past month a little bit less frustrating.
Update 3/3/2008: I have reworked my solution to prevent virtualization from not working when sorting the ListBox with the CollectionView sort descriptors. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=30&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h4>I would like to give a big &#8220;Thanks!&#8221; to Microsoft&#8217;s Ben Carter for providing me the high-level solution to this difficult problem, and making work over the past month a little bit less frustrating.</h4>
<p><font color="#ff0000">Update 3/3/2008: I have reworked my solution to prevent virtualization from not working when sorting the ListBox with the CollectionView sort descriptors. I apologize for any inconvenience this may have caused.</font></p>
<p><b></b>Previously, I discussed how turning on grouping in a <font color="#3366ff">ListBox </font>would prevent a virtualizing panel from, well, performing virtualization or lazy-loading of UI elements. When you turn grouping on, your visual tree should look similar to:</p>
<p><img src="http://jerryclin.files.wordpress.com/2008/03/groupingvisualtree.png" alt="groupingvisualtree.png" /></p>
<p>When you turn on grouping, you are silently adding a <font color="#3366ff">StackPanel </font>to your window&#8217;s visual tree, which is the one that communicates with the parent <font color="#3366ff">ScrollViewer </font>object. Also, note how the virtualizing <font color="#3366ff">WrapPanel </font>is wrapped inside a <font color="#3366ff">GroupingItem </font>instance. Fixing this requires you to write a custom panel for <font color="#3366ff">ListBox.GroupingStyle</font>.</p>
<p>The idea is the panel you write for grouping (to replace the <font color="#3366ff">StackPanel</font>) will communicate with the virtualizing panel that&#8217;s being used in <font color="#3366ff">ListBox.ItemsPanelTemplate</font>. The inner panel should be able to query the outer panel for the viewport size on each layout pass so it knows which children it needs to realize/unrealize. Conversely, because the outer panel is the one controlling scrolling, it needs to call the appropriate methods in the inner panel any time its scroll offsets change.</p>
<p>However, the sequence of events in this can be tricky so I will explain at a high level how I implemented this (hack) fix. Since I did this under company time, I cannot share my source code with you. Sorry.</p>
<h4>Assumptions</h4>
<p>You have implemented a virtualizing panel and want it to work with <font color="#3366ff">ListBox </font>grouping.</p>
<p>The panel  I wrote for grouping mimics a vertically oriented <font color="#3366ff">StackPanel</font>, but you should write one to suit your needs (if you have VS 2008, you can look at Microsoft&#8217;s panel source code to make things easier).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=30&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/02/22/listbox-grouping-and-virtualization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>

		<media:content url="http://jerryclin.files.wordpress.com/2008/03/groupingvisualtree.png" medium="image">
			<media:title type="html">groupingvisualtree.png</media:title>
		</media:content>
	</item>
		<item>
		<title>WTF Moment: Object Lifetime Events</title>
		<link>http://jerryclin.wordpress.com/2008/02/19/wtf-moment-object-lifetime-events/</link>
		<comments>http://jerryclin.wordpress.com/2008/02/19/wtf-moment-object-lifetime-events/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 16:42:36 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[object initialization]]></category>
		<category><![CDATA[wtf moment]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=28</guid>
		<description><![CDATA[I was reading the MSDN docs for Object Lifetime Events (click and see highlighted portion):

Blindly believing this because having OnInitialized act as a bubbling event makes sense, I override OnInitialized for two panels, one nested inside the other. This was so that the two could communicate with each other by having the outer panel set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=28&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was reading the MSDN docs for Object Lifetime Events (click and see highlighted portion):</p>
<p><a href="http://jerryclin.files.wordpress.com/2008/02/object-lifetime-events.png" title="object-lifetime-events.png"><img src="http://jerryclin.files.wordpress.com/2008/02/object-lifetime-events.thumbnail.png" alt="object-lifetime-events.png" /></a></p>
<p>Blindly believing this because having OnInitialized act as a bubbling event makes sense, I override OnInitialized for two panels, one nested inside the other. This was so that the two could communicate with each other by having the outer panel set some properties in the inner. Noticing some properties weren&#8217;t being set in the nested panel, I set break points in the debugger and it turns out OnInitialized is NOT bubbling, but appears as tunneling.</p>
<p>Am I smoking crack, or is there something going on in these Object Lifetime Events that I&#8217;m not aware of?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=28&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/02/19/wtf-moment-object-lifetime-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>

		<media:content url="http://jerryclin.files.wordpress.com/2008/02/object-lifetime-events.thumbnail.png" medium="image">
			<media:title type="html">object-lifetime-events.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Making a Virtualizing WrapPanel</title>
		<link>http://jerryclin.wordpress.com/2008/02/06/making-a-virtualizing-wrappanel/</link>
		<comments>http://jerryclin.wordpress.com/2008/02/06/making-a-virtualizing-wrappanel/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 17:58:25 +0000</pubDate>
		<dc:creator>Jerry Lin</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[IScrollInfo]]></category>
		<category><![CDATA[lazy load]]></category>
		<category><![CDATA[scrolling]]></category>
		<category><![CDATA[virtualizing]]></category>
		<category><![CDATA[WrapPanel]]></category>

		<guid isPermaLink="false">http://jerryclin.wordpress.com/?p=20</guid>
		<description><![CDATA[If you use Jing, you may have noticed that loading times for the History bin can be really long. As discussed in this post, we&#8217;ve already implemented some techniques to improve this, except for one: implementing a virtualizing panel.
In response, I&#8217;ve spent the last two months implementing one to significantly cut down on loading times. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=20&subd=jerryclin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you use <a href="http://www.jingproject.com" target="_blank">Jing</a>, you may have noticed that loading times for the History bin can be really long. As discussed in this <a href="http://jerryclin.wordpress.com/2007/11/20/the-history-of-improving-the-history-bin/" target="_blank">post</a>, we&#8217;ve already implemented some techniques to improve this, except for one: implementing a virtualizing panel.</p>
<p>In response, I&#8217;ve spent the last two months implementing one to significantly cut down on loading times. To be blunt, I can&#8217;t say it was an enjoyable experience &#8211; it was rather frustrating. Although Dan Crevier has a series of <a href="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx" target="_blank">posts</a> on implementing a virtualizing panel, his example is not ready to be used in production.</p>
<p>In this post, I will discuss how I made a virtualizing <font color="#3366ff">WrapPanel </font>at a high level, and hopefully make the process a little bit easier.</p>
<h4>Disclaimers</h4>
<p>Since I wrote my virtualizing <font color="#3366ff">WrapPanel </font>under company time, I cannot list its source code as I would be violating my NDA with <a href="http://www.techsmith.com" target="_blank">TechSmith</a>.</p>
<p>Also, I am assuming you already know what the purpose of virtualizing panels are, and have read Dan Crevier&#8217;s <a href="http://blogs.msdn.com/dancre/archive/2006/02/06/implementing-a-virtualized-panel-in-wpf-avalon.aspx" target="_blank">tutorial </a>on how to write one since I use many of the terms that he does.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jerryclin.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jerryclin.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jerryclin.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jerryclin.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jerryclin.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jerryclin.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jerryclin.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jerryclin.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jerryclin.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jerryclin.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jerryclin.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jerryclin.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jerryclin.wordpress.com&blog=2341949&post=20&subd=jerryclin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jerryclin.wordpress.com/2008/02/06/making-a-virtualizing-wrappanel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/93870a6df84593b05152c829591ecbcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jerryclin</media:title>
		</media:content>
	</item>
	</channel>
</rss>