<?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/"
	>

<channel>
	<title>JAPF &#187; user experience</title>
	<atom:link href="http://www.japf.fr/tag/user-experience/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.japf.fr</link>
	<description>Jeremy Alles Presentation Foundation: WPF, .Net and modern software development</description>
	<lastBuildDate>Thu, 29 Jul 2010 07:29:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Adding transitions to a MVVM based dialog</title>
		<link>http://www.japf.fr/2009/04/adding-transitions-to-a-mvvm-based-dialog/</link>
		<comments>http://www.japf.fr/2009/04/adding-transitions-to-a-mvvm-based-dialog/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 18:25:09 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[model-view-viewmodel]]></category>
		<category><![CDATA[mvvm]]></category>
		<category><![CDATA[transition]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=182</guid>
		<description><![CDATA[In my last blog post about MVVM, I showed how it is natural to build a common WPF dialog using DataBinding and Templates with the Model-View-ViewModel methodology. Because I&#8217;m having a lot of feedback on posts I wrote about how transitions can be done in WPF, I decided to reuse my previous demo application and [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.japf.fr/?p=154">last blog post</a> about MVVM, I showed how it is natural to build a common WPF dialog using DataBinding and Templates with the Model-View-ViewModel methodology. Because I&#8217;m having a lot of feedback on posts I wrote about how transitions can be done in WPF, I decided to reuse my previous demo application and add transitions when switching from one element to another. Here is the result of the demo application:</p>
<p><img src="http://www.japf.fr/wp-content/plugins/flash-video-player/default_video_player.gif" /></p>
<p>I didn&#8217;t wanted to implement all the transitions, instead I decided to use the famous <a href="http://www.codeplex.com/fluidkit">FluidKit</a> library and to wrap its transition control into a reusable and &#8220;MVVM compliant&#8221; control. I thank <a href="http://blog.pixelingene.com/">Pavan Podila</a> for giving me feedback while designing this control.</p>
<p>Basically, based on Pavan suggestions I created an INavigationAware interface and subclass transitions I wanted to reuse from FluidKit. The INavigationAware interface allows me to specify that the transition supports going forward and going backward (regarding the previous and current selection of the user in the menu).</p>
<p>The control itself (that I call a NavigationPresenter) is very simple, I just use 2 ContentPresenter that I switch when the Content property changes using the TransitionPresenter control from the FluidKit library. The NavigationPresenter works with 3 dependency properties:</p>
<ul>
<li>GoForward (bool): to specifiy the way of the transition</li>
<li>Transition: to specify the transition to use</li>
<li>Content: to specify the content of the control</li>
</ul>
<p>Here is the XAML for using the NavigationPresenter</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p182code2'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1822"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p182code2"><pre class="xml" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!-- The ContentProperty is not bound directly to the SelectedItem of the ListBox because the</span>
<span style="color: #808080; font-style: italic;">     GoForward property must be updated BEFORE the content changes. The CurrentContent property</span>
<span style="color: #808080; font-style: italic;">     is defined in the ViewModel class and updated everytime the selection of the ListBox changes,</span>
<span style="color: #808080; font-style: italic;">     after setting up the GoForward value. --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;NavigationTransition:NavigationPresenter</span> </span>
<span style="color: #009900;">    <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;{Binding CurrentContent}&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">Transition</span>=<span style="color: #ff0000;">&quot;{Binding ElementName=transitionComboBox, Path=SelectedItem.Tag}&quot;</span></span>
<span style="color: #009900;">    <span style="color: #000066;">GoForward</span>=<span style="color: #ff0000;">&quot;{Binding DataContext.GoForward, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type AnimatedContentPresenter:MainDialog}}}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>            
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/NavigationTransition:NavigationPresenter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>The sample application comes with 3 animations but more can be used from the FluidKit library. It&#8217;s also possible to create your own transition (inherit from Transition base class). You can download the sample application <a href="http://www.japf.fr/download/AnimatedContentPresenter.zip">here</a>. Hope you&#8217;ll like it !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/04/adding-transitions-to-a-mvvm-based-dialog/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>photoSuru: a WPF application with spectacular user experience</title>
		<link>http://www.japf.fr/2009/01/photosuru-a-wpf-application-with-spectacular-user-experience/</link>
		<comments>http://www.japf.fr/2009/01/photosuru-a-wpf-application-with-spectacular-user-experience/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 12:28:16 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=106</guid>
		<description><![CDATA[Yesterday, Microsoft released a new WPF application: photoSuru. photoSuru has been designed to give the a spectacular user experience and demonstrate the power of the WPF platform. You&#8217;ll discover in this application a lot of cool things: pixel shaders skinning/theme support dynamic templates clickonce deployment and a lot more ! The good news about that [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Microsoft released a new WPF application: <a href="http://www.photosuru.com">photoSuru</a>. photoSuru has been designed to give the a spectacular user experience and demonstrate the power of the WPF platform. You&#8217;ll discover in this application a lot of cool things:</p>
<ul>
<li>pixel shaders</li>
<li>skinning/theme support</li>
<li>dynamic templates</li>
<li>clickonce deployment</li>
<li>and a lot more !</li>
</ul>
<p>The good news about that is that the SOURCE CODE IS AVAILABLE. Yes, you read right ! The entire source code is available for free, and moreover, a SDK is available to leverage the functionalities of photoSuru in your own application.</p>
<p>Interestings links:</p>
<ul>
<li>introduction <a href="http://channel9.msdn.com/shows/Continuum/PhotoSuru/">video</a> on Channel9</li>
<li>dedicated <a href="http://www.photosuru.com">website</a></li>
<li>the <a href="http://blogs.msdn.com/wpfsdk/archive/2009/01/07/a-new-wpf-photo-application-photosuru.aspx">blog post</a> on WPF SDK team</li>
<li>the <a href="http://windowsclient.net/wpf/starter-kits/sce-get-started.aspx">home page</a> of the SDK</li>
</ul>
<p>Here are some snapshots of photoSuru, enjoy <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The welcome screen.</p>
<p><img class="alignnone size-full wp-image-112" title="welcome" src="http://www.japf.fr/wp-content/uploads/2009/01/welcome.png" alt="welcome" width="290" height="232" /></p>
<p>The main screen of the application. Note how each image is used two times to give a nice preview of the album.</p>
<p><img class="alignnone size-medium wp-image-110" title="home" src="http://www.japf.fr/wp-content/uploads/2009/01/home-300x240.png" alt="home" width="300" height="240" /></p>
<p>The image browser. You can browse the images using the top control which looks like a film strip (and which is a ListBox by the way :p)</p>
<p><img class="alignnone size-medium wp-image-108" title="browse2" src="http://www.japf.fr/wp-content/uploads/2009/01/browse2-300x240.png" alt="browse2" width="300" height="240" /></p>
<p>Note the use of pixel shaders when selecting an image in the ListBox</p>
<p><img class="alignnone size-medium wp-image-107" title="browse1" src="http://www.japf.fr/wp-content/uploads/2009/01/browse1-300x240.png" alt="browse1" width="300" height="240" /></p>
<p>The use of pixel shaders over an image (water effect)</p>
<p><img class="alignnone size-medium wp-image-109" title="fx" src="http://www.japf.fr/wp-content/uploads/2009/01/fx-300x241.png" alt="fx" width="300" height="241" /></p>
<p>The search functionality is wonderful ! Basically, you type a keyword and you get a set of images. By clicking an images, you&#8217;ll discover the keywords that are attached to this image. You can this way navigates easily from images to images&#8230;</p>
<p><img class="alignnone size-medium wp-image-111" title="search1" src="http://www.japf.fr/wp-content/uploads/2009/01/search1-300x241.png" alt="search1" width="300" height="241" /></p>
<p>I hope I&#8217;ll have some free time to investigate the source code. I&#8217;m sure there are a lot of things to learn in this new application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/01/photosuru-a-wpf-application-with-spectacular-user-experience/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
