<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Jonathan ANTOINE&amp;#39;s blog about WPF, Silverlight, WinRT, XAML, ...</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=c1d43d00b3d68738989fcd36dd682f47</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=c1d43d00b3d68738989fcd36dd682f47&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 23:19:00 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>WinRT exceptions : how to know what the hexadecimal error code means</title>
         <link>http://www.jonathanantoine.com/2015/07/25/winrt-exceptions-how-to-know-what-the-hexadecimal-error-code-means/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;When working with the &lt;strong&gt;WinRT SDK you somethimes get exceptions from it with only an hexadecimal code to help you understand what the error is&lt;/strong&gt;. Often, when you look for it on Google/Bing, you end with no help and no way to fix the error. &lt;strong&gt;There is a way to know the associated error message !&lt;/strong&gt;&lt;br /&gt;
&lt;span id=&quot;more-1542&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am talking about this kind of error messages : “Exception thrown at 0x77694598 (KernelBase.dll) in MonAppli.Windows.exe: 0x40080201: WinRT originate error (parameters: 0x80072F19, 0x00000067, 0x0519EE60).” I looked for every hexadecomal code without success.&lt;br /&gt;
&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2015/07/Excception.png&quot; alt=&quot;Excception&quot; width=&quot;797&quot; height=&quot;522&quot; class=&quot;aligncenter size-full wp-image-1543&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To get the message associated with this error, follow this procedure : &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Activat the native debugger : in the properties of your project, is at the end of the debug tab.&lt;/li&gt;
&lt;li&gt;Launch your app with the debugger attached and produced the exception.&lt;/li&gt;
&lt;li&gt;Copy the third hexadecimal code in the exception Windows (0x0519EE60 here).&lt;/li&gt;
&lt;li&gt;Click on Break.&lt;/li&gt;
&lt;li&gt;Open the &amp;#8220;Memory 1&amp;#8243; Windows. It&amp;#8217;s only available in Debug mode in this menu : &amp;#8220;Debug &amp;gt; Windows &amp;gt; Memory &amp;gt; Memory 1&amp;#8243;&lt;/li&gt;
&lt;li&gt;Paste the value in the adress text box and press the enter key&lt;/li&gt;
&lt;li&gt;The description is available at the right &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2015/07/exception2.png&quot; alt=&quot;exception2&quot; width=&quot;881&quot; height=&quot;861&quot; class=&quot;aligncenter size-full wp-image-1546&quot;/&gt;&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1542</guid>
         <pubDate>Sat, 25 Jul 2015 10:11:08 +0000</pubDate>
      </item>
      <item>
         <title>Windows Phone : localize your App name</title>
         <link>http://www.jonathanantoine.com/2013/12/27/windows-phone-localize-your-app-name/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;When you build a Windows Phone App, you for sure take some time to translate it in several language. By default there is no easy way to translate the app name but you can do it. Here is a quick &amp;#8220;how-to&amp;#8221; !&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1522&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download this project and add it to your solution : &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.msdn.microsoft.com/wpapps/Language-Neutral-Resource-5894846e&quot;&gt;http://code.msdn.microsoft.com/wpapps/Language-Neutral-Resource-5894846e&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Edit the string table in the AppResLib.rc file to set your app name, etc.&lt;/li&gt;
&lt;li&gt;Build this project and copy the resulting dll in your WP project. This will be the default values (neutral language)&lt;/li&gt;
&lt;li&gt;Change the values in the AppResLib.rc file for a specific language (for example french) and build again the project.&lt;/li&gt;
&lt;li&gt;Rename the resulting dll to AppResLib.dll.040c.mui and copy it at the root of the WP project, next to the dll. &lt;strong&gt;The &amp;#8220;04OC&amp;#8221; is specific to &amp;#8220;French&amp;#8221; and should be set to the value matching the target language.&lt;/strong&gt; A full list is here : http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx&lt;/li&gt;
&lt;li&gt;Do it again for as much language you want&lt;/li&gt;
&lt;li&gt;Select all the *.mui files and the AppResLib.dll file and set their build type to content in the properties Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update your WMAppManifest.xml&lt;/strong&gt; file and set the app name to this value : @AppResLib.dll,-100 . The value will then be taken for your file, depending of the user language, at the offset 100 in the string table.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1524&quot; alt=&quot;reslLib&quot; src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/12/reslLib.png&quot; width=&quot;722&quot; height=&quot;115&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/12/manifest.png&quot; alt=&quot;manifest&quot; width=&quot;349&quot; height=&quot;179&quot; class=&quot;aligncenter size-full wp-image-1526&quot;/&gt;&lt;/p&gt;
&lt;p&gt;
Not really obvious but this works fine &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you want to see this feature in action, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.windowsphone.com/en-us/store/app/dites-le-avec-des-fleurs/ac8a9233-c8b2-4b5a-9842-9572f113aace&quot;&gt;it will soon be available in our last app &amp;#8220;Say it With Flowers&amp;#8221;&lt;/a&gt; !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PS: the whole procedure is describe &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff967550(v=vs.105).aspx&quot;&gt;in depth on MSDN &lt;/a&gt;but I am sure you love this recap &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;PS2: the localized app name won&amp;#8217;t be displayed on the Store page because of a bug in the Store : http://blog.webrox.fr/?p=61&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1522</guid>
         <pubDate>Fri, 27 Dec 2013 17:27:10 +0000</pubDate>
      </item>
      <item>
         <title>WinJS 2.0 / IE 11 : the new and shiny MutationObserver object</title>
         <link>http://www.jonathanantoine.com/2013/10/28/winjs-2-0-ie-11-the-new-and-shiny-mutationobserver-object/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;Let me introduce you a new feature of Internet Explorer 11 which is available in your Windows 8.1 apps too : the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ie/dn254985(v=vs.85).aspx&quot;&gt;MutationObserver&lt;/a&gt;. This object lets you observe the changes on any HTML element of your DOM.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1511&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You may already know these monitoring events available before and which are now no more supported :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DOMNodeInserted&lt;/li&gt;
&lt;li&gt;DOMNodeRemoved&lt;/li&gt;
&lt;li&gt;DOMSubtreeModified&lt;/li&gt;
&lt;li&gt;DOMAttrModified&lt;/li&gt;
&lt;li&gt;DOMCharacterDataModified&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;They have been replaced by the MutationObserver in IE 11 because they have several drawbacks&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They are standard JS events, so they bubble the whole DOM : bad for performance.&lt;/li&gt;
&lt;li&gt;They may spam you because each change raise an event without batching : bad for performance.&lt;/li&gt;
&lt;li&gt;They are synchronous and block your execution : bad for performance.&lt;/li&gt;
&lt;li&gt;Did I tell you that there may be performance issues?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The MutationObserver fix these issues and is really easy to use&lt;/strong&gt; :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a mutation observer by giving a callback function as a parameter.&lt;/li&gt;
&lt;li&gt;Observe an element and specify &amp;#8220;what to observe&amp;#8221;&lt;/li&gt;
&lt;li&gt;Do something in the callback&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Creating a mutation observer is easy as instantiating an object. The callback function takes 2 parameters : an object describing the change and the second one will be the MutationObserver.&lt;/p&gt;
&lt;pre&gt;function mutationObserverCallBack(changes, mutationObserver) {/*...*/   }

//Creation of the observer
var observer = new MutationObserver(mutationObserverCallBack);&lt;/pre&gt;
&lt;p&gt;Then you can observe any html element by calling the observe function on the observer. This function takes as a second parameter a json object with the &amp;#8220;monitoring&amp;#8221; options. For example, you can monitor only the addition/removal of element on any of its children and any change of &amp;#8220;class&amp;#8221; :&lt;/p&gt;
&lt;pre&gt;
var observer = new MutationObserver(mutationObserverCallBack);
observer.observe(element, {
    attributes: true,
    attributeFilter: [&amp;quot;class&amp;quot;],
    childList: true,
    subtree: true,
});
&lt;/pre&gt;
&lt;p&gt;There is a lot of possible configuration and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ie/dn254987(v=vs.85).aspx&quot;&gt;you can find a full list on this MSDN page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the callback, you can explore the changes which is a list of the modifications. Each one has a type field and some properties (added nodes, old value, etc.) which let you know which change has been performed.&lt;/p&gt;
&lt;pre&gt;function mutationObserverCallBack(changes, mutationObserver) {

    changes.forEach(function (mutationRecord) {
         
        console.log(&amp;quot;Type of mutation: &amp;quot; + mutationRecord.type);
        
        if (&amp;quot;attributes&amp;quot; === mutationRecord.type) {
            console.log(&amp;quot;Old attribute value: &amp;quot; + mutationRecord.oldValue);
        }
    });
}&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/10/changesMoniker.png&quot; alt=&quot;changesMoniker&quot; width=&quot;672&quot; height=&quot;218&quot; class=&quot;alignleft size-full wp-image-1516&quot;/&gt;&lt;/p&gt;
&lt;h4&gt;Additionnal links&lt;/h4&gt;
&lt;p&gt; This is a just a quick blog post of this good new API. You can find more information on these pages :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ie/dn265034(v=vs.85).aspx&quot;&gt;MSDN : Mutation observers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ie/dn254987(v=vs.85).aspx&quot;&gt;MSDN : the observe method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ie/dn265032(v=vs.85).aspx&quot;&gt;MSDN : Migrating mutation and property change events to mutation observers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1511</guid>
         <pubDate>Mon, 28 Oct 2013 06:56:15 +0000</pubDate>
      </item>
      <item>
         <title>#WinRT : how to easily get the dominant color of a picture</title>
         <link>http://www.jonathanantoine.com/2013/07/16/winrt-how-to-easily-get-the-dominant-color-of-a-picture/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#8220;Content before Chrome&amp;#8221; is the Leitmotif of Windows Store Apps. You&amp;#8217;ll usually end up using a lot of images in your app and getting the dominant color of a picture may actually be useful. &lt;strong&gt;My first attempt to achieve this was to get the bytes of the picture and calculate the average value. There is actually an easier and faster solution using the Windows Rutime API.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1500&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/br226193.aspx&quot;&gt;GetPixelDataAsync&lt;/a&gt; method of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.imaging.bitmapdecoder.aspx&quot;&gt;BitmapDecoder&lt;/a&gt; class lets you get the pixels of a given picture and you can apply transformations during the process. I will the simply ask it to resize the image to a simple unique pixel. The resulting pixel will be the dominant color of the image.&lt;/p&gt;
&lt;pre&gt;
//get the file
var file = await StorageFile.GetFileFromApplicationUriAsync(myLocalImageUri);

using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
    //Create a decoder for the image
    var decoder = await BitmapDecoder.CreateAsync(stream);
 
    //Create a transform to get a 1x1 image
    var myTransform = new BitmapTransform { ScaledHeight = 1, ScaledWidth = 1 };

    //Get the pixel provider
    var pixels = await decoder.GetPixelDataAsync(
        BitmapPixelFormat.Rgba8,
        BitmapAlphaMode.Ignore,
        myTransform ,
        ExifOrientationMode.IgnoreExifOrientation,
        ColorManagementMode.DoNotColorManage);
  
    //Get the bytes of the 1x1 scaled image
    var bytes = pixels.DetachPixelData();

    //read the color 
    var myDominantColor = Color.FromArgb(255, bytes[0], bytes[1], bytes[2]);
}

&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;The code is extremely simple: open the file, open its stream, create a BitmapDecoder, grab the pixels applying the transform and read the color.&lt;/strong&gt;&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.infinitesquare.com&quot;&gt;&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/07/dominant-color.png&quot; alt=&quot;dominant color&quot; width=&quot;426&quot; height=&quot;203&quot; class=&quot;aligncenter size-full wp-image-1504&quot;/&gt;&lt;/a&gt;&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1500</guid>
         <pubDate>Tue, 16 Jul 2013 07:15:39 +0000</pubDate>
      </item>
      <item>
         <title>Windows 8.1 : let&amp;#8217;s discover the Scheduler of #WinJS</title>
         <link>http://www.jonathanantoine.com/2013/07/02/windows-8-1-lets-discover-the-scheduler-of-winjs/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/07/WinJSScheduler.png&quot; alt=&quot;WinJSScheduler&quot; width=&quot;172&quot; height=&quot;169&quot; class=&quot;alignleft size-full wp-image-1493&quot;/&gt;Windows 8.1 comes with a new feature in the WinJS SDK : a scheduler. Let&amp;#8217;s see what it is and how to use it!&lt;/p&gt;
&lt;p&gt;In Windows 8, every job is nearly done as soon as you execute it. You could play with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html&quot;&gt;msSetImmediate function&lt;/a&gt; but it was still a little mode &amp;#8220;hack&amp;#8221; than &amp;#8220;code&amp;#8221;. &lt;/p&gt;
&lt;p&gt;With Windows 8.1, the SDK introduce a scheduler used by the whole WinJS framework.&lt;strong&gt; This scheduler helps you to define what is important (animations, visual feedback, manage user input) from what can be delayed (background work, data processing not used immediatly). &lt;/p&gt;
&lt;p&gt;The goal is to let you build application which reacts immedialty to the user will.&lt;/strong&gt;&lt;br /&gt;
&lt;span id=&quot;more-1471&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s in it ?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Everything lives in the WinJS.Utilities.Scheduler&lt;/strong&gt; namepsace and is written in javascript.&lt;br /&gt;
This namespace is often shortcuted &amp;#8220;Scheduler&amp;#8221; or &amp;#8220;S&amp;#8221; in the Microsoft samples.&lt;/p&gt;
&lt;pre&gt;var S = WinJS.Utilities.Scheduler;&lt;/pre&gt;
&lt;p&gt;There is 4 importants objects to know :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WinJS.Utilities.Scheduler&lt;/strong&gt;: the main namepsace with a lot of static function which lets you start and manage jobs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WinJS.Utilities.Scheduler.IJob&lt;/strong&gt; : everything thing is a job. When you start a task/work using the scheduler, it returns you an IJob object on which you can call management methods.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WinJS.Utilities.Scheduler.IJobInfo&lt;/strong&gt; : information passed to your work-function when executed. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WinJS.Utilities.Scheduler.IOwnerToken&lt;/strong&gt; : you want to be the owner of a task and manage a group of jobs then use this.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to use it (101) ?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Launching a job is as simple as providing a function :&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
var job = WinJS.Utilities.Scheduler.schedule(function willBeExecuted(){

//work to be done
});
&lt;/pre&gt;
&lt;p&gt;There is some optional parameters that can be set too : a priority (default is WinJS.Utilities.Scheduler.Priority.normal.), a this parameter which will be set when the function is executed and name (useful when debugging):&lt;/p&gt;
&lt;pre&gt;
var whoAmI = {};
var job =  WinJS.Utilities.Scheduler.schedule(function willBeExecuted(){

//work to be done
} , WinJS.Utilities.Scheduler.Priority.normal, whoAmI, &amp;quot; I am the job name&amp;quot; );
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;The returned object is a IJob object and you can call some function on it to cancel it&amp;#8217;s scheduling, pause it, resume it and have some information like the name, the priority, the owner, etc. &lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;
//create a job
var job =  WinJS.Utilities.Scheduler.schedule( /* ...*/);
//pause the job
job.pause();

//resume it in 5 secs
WinJS.Promise.timeout(5000).then(job.resume);

//reads the name of the job 
var name = job.name;
&lt;/pre&gt;
&lt;h3&gt;IJobInfo and yielding &lt;/h3&gt;
&lt;p&gt;In this case &amp;#8220;yielding&amp;#8221; means &amp;#8220;let other task more important than me start and do their job while I am executing and pause me&amp;#8221;.&lt;br /&gt;
&lt;strong&gt;Let&amp;#8217;s assume that you have a job which takes 10 seconds to be done and that you can split it in 10 parts.&lt;br /&gt;
Then you can launch the job with the scheduler, do the first part and tells it : do something else (other jobs with higher priority) if necessary then call me back. The Scheduler will then manage this &lt;em&gt;process&lt;/em&gt; for you.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When your job is executed, a parameter is actually provided and it implements the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/dn255148.aspx&quot;&gt;IJobInfo interface&lt;/a&gt;&lt;/strong&gt;. This jobInfo object has 2 important functions and 1 important field :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;setPromise&lt;/strong&gt;: calling it providing a function  tells the scheduler to wait for this promise before to call you back. If you need to download locally an internet resource, the Scheduler does not need to call you before and you can set a promise to wait for the download to be done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;setWork : &lt;/strong&gt; calling it providing a function tells the scheduler which function to call when it wants to continue your processing (after the execution of more importants tasks).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;shouldYield&lt;/strong&gt; : read this to know if the function should yield : if true, you set the next function to call using the setWork function and you returns. If false, you do your job.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how do we implement this feature ? By creating a processing function which will process each part in a loop. At each cycle, we will check if we have to yield. If so, we tells the scheduler to call us back when it wants to restart our process. If the process is done (10 parts processed) then we just returns.&lt;/p&gt;
&lt;p&gt;Here is how I will implement this &amp;#8220;10 parts processing&amp;#8221;.&lt;/p&gt;
&lt;pre&gt;var partProcessed = 0;

function executeYieldingTask() {
    
    // schedule some work
    S.schedule(function myScheduledJob(jobInfo) {

        //Process the 10 parts
        while (partProcessed &amp;lt; 10) {


            //check if I have to yield :new job with higher priority
            // may have been scheduled
            if (jobInfo.shouldYield) {

                //tells the Scheduler to execute myScheduledJob
                // when it's done executing higher priority task 
                jobInfo.setWork(myScheduledJob);

                //we yield so we exit the 'process loop'
                break;

            }
            else {
                /* process the part partProcessed */
                partProcessed = partProcessed + 1;
            }
        }
    }, S.Priority.idle);
}


&lt;/pre&gt;
&lt;h3&gt;The IOwnerToken interface and how to use it&lt;/h3&gt;
&lt;p&gt;IOwnerToken is an interface which represents the owner of a job. By owner it means &amp;#8220;master&amp;#8221; : the one who controls and manage it.&lt;br /&gt;
A token can be set to multiple jobs at once and there is one function on this interface : cancelAll. This function simply cancel all the jobs owned by the token.&lt;/p&gt;
&lt;p&gt;To create a token, you have to call the createOwnerToken function. You can then assign it to created job.&lt;/p&gt;
&lt;pre&gt;
//create a token
var ownerToken = WinJS.Utilities.Scheduler.createOwnerToken();

//create jobs
var job1 =  WinJS.Utilities.Scheduler.schedule( /* ...*/);
var job2 =  WinJS.Utilities.Scheduler.schedule( /* ...*/);

//Be in control
job1.owner = ownerToken ;
job2.owner = ownerToken ;

//Cancel the jobs at once :
ownerToken.cancelAll();
&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;This token is then really useful when you want to manage a group of jobs at once.&lt;/b&gt; Create an owner, if the user do something else, goes to another page : you cancel all the task at once and retrieve some CPU juice.&lt;/p&gt;
&lt;h3&gt;Some useful functions&lt;/h3&gt;
&lt;p&gt;Now let&amp;#8217;s discover some useful functions when playing with jobs and the scheduler. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;requestDrain&lt;/b&gt; : use this function if you want to be sure that all scheduled jobs at a given priority are over. Simply pass the targeted priority, it returns a promise which can be use to know the completion of the &amp;#8220;error state&amp;#8221; of the queue processing &lt;/li&gt;
&lt;li&gt;&lt;b&gt;retrieveState&lt;/b&gt; : you need to dump the schedule queue for &lt;strong&gt;debug purpose&lt;/strong&gt; ? Use this function :). It dumps the name, the id, the priority of the tasks, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;schedulePromiseXXX&lt;/b&gt; : there is a lot of functions with similar names(schedulePromiseAboveNormal, etc.). These functions takes a promise as a parameter. It assures that the completion/error handler is processed on the scheduler with the given priority. If you want a completion handler tob be processed as soon as the promise is done, then use schedulePromiseHigh.    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are some code example :&lt;/p&gt;
&lt;pre&gt;
//requestDrain example
var drainPromise = WinJS.Utilities.Scheduler.requestDrain(priority, name);

drainPromise.done( 
      function complete(){console.log(&amp;quot;queue drained&amp;quot;);},
      function error(){ });

//retrieveState example :  
var S= WinJS.Utilities.Scheduler;
S.schedule(function () {/* */ }, S.Priority.aboveNormal,null,&amp;quot;a task name&amp;quot;);
S.schedule(function () {/* */ }, S.Priority.idle,null, &amp;quot;infinite square name&amp;quot;);
S.schedule(function () {/* */ }, S.Priority.belowNormal,null,&amp;quot;another task name&amp;quot;);
 
var state = WinJS.Utilities.Scheduler.retrieveState();
/*
  state looks like this :
  Jobs:
     id: 22, priority: aboveNormal, name: a task name
     id: 24, priority: belowNormal, name: another task name
     id: 23, priority: idle, name: infinite square name
	Drain requests:
     None
*/

//schedulePromiseXXX example
var dldPromise = WinJS.xhr({url:'www.infiniteSquare.com'});
WinJS.Utilities.Scheduler.schedulePromiseHigh(dldPromise)
     .then(function(xhrResult){
     /* process interesting content */
      });

&lt;/pre&gt;
&lt;p&gt;Regards.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1471</guid>
         <pubDate>Tue, 02 Jul 2013 12:29:35 +0000</pubDate>
      </item>
      <item>
         <title>Windows 8.1 #XAML new theme management in your Windows Store Apps</title>
         <link>http://www.jonathanantoine.com/2013/06/30/windows-8-1-xaml-new-theme-management-in-your-windows-store-apps/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Did you remember Windows 8 ? The theme of your app was set once at the launch and you could’nt change it dyamically or set once by control. This was really annoying in some case like Settings Flyout where you often wanted to set the opposite one of your app. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This was good old times and these issues are gone in Windows 8.1 : youpi !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let’s digg a little more &lt;img class=&quot;wlEmoticon wlEmoticon-smile&quot; style=&quot;border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;&quot; alt=&quot;Smile&quot; src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/06/wlEmoticon-smile.png&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1460&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;The theme can be updated at runtime&lt;/h3&gt;
&lt;p&gt;Windows 8 theme resources are provided using StaticResource and so can’t be updated at runtime. The resources are loaded once at the app startup and even if you update it, the controls won’t update themselves because the StaticResource provide the value once and only once : when parsed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now comes a new markup extension named ThemeResource.&lt;/strong&gt; You can use it like the StaticResource object but this &lt;strong&gt;special resource will update the targeted control if the Theme of the control is updated&lt;/strong&gt;. You can see it as the DynamicResource in WPF but only for some “theme” resource and triggered only by a theme change.&lt;/p&gt;
&lt;p&gt;Of course, all the template of the frameworks are now using this new feature and you are free (must &lt;img class=&quot;wlEmoticon wlEmoticon-smile&quot; style=&quot;border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;&quot; alt=&quot;Smile&quot; src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/06/wlEmoticon-smile.png&quot;/&gt;) use it in your own controls. You can actually use it anywhere in your XAML :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;Border RequestedTheme=&amp;quot;Light&amp;quot; 
            Background=&amp;quot;{ThemeResource ApplicationPageBackgroundThemeBrush}&amp;quot;&amp;gt;
&amp;lt;/Border&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;The theme can now be set by control&lt;/h3&gt;
&lt;p&gt;In Windows 8 you had to set the RequestedTheme property at launch (in the constructor of you app for example) and it could be set only once. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now this is a property of the FrameworkElement class which is the base class for any control.&lt;/strong&gt; The value will be inherited by all its children (this is actually done because it overrides values in the resource dictionary which will be available to the children of the control).&lt;/p&gt;
&lt;p&gt;In this sample I override the theme twice in the same visual tree : &lt;/p&gt;
&lt;pre&gt;
&amp;lt;StackPanel RequestedTheme=&amp;quot;Light&amp;quot; 
            Background=&amp;quot;{ThemeResource ApplicationPageBackgroundThemeBrush}&amp;quot;&amp;gt;
       &amp;lt;TextBlock Text=&amp;quot;Hello World !&amp;quot; /&amp;gt;
       &amp;lt;Border RequestedTheme=&amp;quot;Dark&amp;quot;
               Background=&amp;quot;{ThemeResource ApplicationPageBackgroundThemeBrush}&amp;quot;&amp;gt;
            &amp;lt;TextBlock Text=&amp;quot;Another theme&amp;quot; /&amp;gt;
       &amp;lt;/Border&amp;gt;
&amp;lt;/StackPanel&amp;gt;
&lt;/pre&gt;
&lt;p&gt;It then produce this view :&lt;br /&gt;
&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/06/Screenshot-1.png&quot; alt=&quot;Screenshot (1)&quot; width=&quot;369&quot; height=&quot;62&quot; class=&quot;aligncenter size-full wp-image-1466&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;Be aware that &lt;strong&gt;this is a “low priority” setting&lt;/strong&gt; and that all the styles, directly set attributes/properties, triggers, animations and even implicit styles are winning over it.&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;h3&gt;Questions ?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Can we set it by code ?&lt;/b&gt; : yes of course, this is a normal property.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Can we use binding ?&lt;/b&gt; : Yes !&lt;/li&gt;
&lt;li&gt;&lt;b&gt;What are the value of RequestedTheme for the children of a control ?&lt;/b&gt; : The value is &amp;#8220;Default&amp;#8221;. This only means that the value is not overriden and not that this use the App&amp;#8217;s theme (it&amp;#8217;s the theme of the first overriden parent which is used).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.infinitesquare.com/b/jonathan/archives/le-nouveau-systeme-de-themes-des-apps-window-store-xaml-de-windows-81&quot;&gt;You can read this post in french too.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find more by exploring the “XAML requested theme sample (Windows 8.1)” of the samples pack provided by Microsoft.&lt;/p&gt;
&lt;p&gt;Have a nice code &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1460</guid>
         <pubDate>Sun, 30 Jun 2013 15:53:33 +0000</pubDate>
      </item>
      <item>
         <title>[WinRT] How to get the language code actually used to resolve a resource</title>
         <link>http://www.jonathanantoine.com/2013/06/05/winrt-how-to-get-the-resolved-resource-language-code/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;I am working on an app with a lot of different languages. This is really great because there is a lot more chances that the user get the app in its spoken tongue. You can read &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/hh465006.aspx&quot;&gt;more on this topic on MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then I wanted to get a basic information : the language used by the app. Let&amp;#8217;s say that the user is spanish and that I didn&amp;#8217;t translate my app for this tongue then the app could be in english because it&amp;#8217;s the one tongue matching the best its preference. The &amp;#8220;english&amp;#8221; won&amp;#8217;t necessary be the first language declared in my manifest but the best one for the user. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;By using &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/br206014.aspx&quot;&gt;a ResourceLoader object&lt;/a&gt;, you can get any string in the right language but I didn&amp;#8217;t find an easy way to get the actually used language.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;By digging into the WinRT APIs, I found a way to get this information and it could help you.&lt;br /&gt;
&lt;span id=&quot;more-1445&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;A solution&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The trick is to use the MainResourceMap of the app to retrieve a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.resources.core.resourcecandidate.aspx&quot;&gt;resource candidate&lt;/a&gt; for a resource key I know being in all my resources files.&lt;/strong&gt; With this ResourceCandidate, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.resources.core.resourcequalifier&quot;&gt;I can get the ResourceQualifier&lt;/a&gt; which made the framework choose this resource. On this qualifier, I can then retrieve the name of the used language&amp;#8230;&lt;/p&gt;
&lt;pre&gt;
//I have a resource file named &amp;quot;Resources&amp;quot; for each my language
// and each one has a 'AResource' object in it.
var namedResource = ResourceManager.Current.MainResourceMap
    .FirstOrDefault(nR =&amp;gt; nR.Key == &amp;quot;Resources/AResource&amp;quot;).Value;

//I resolve this resource
var resourceCandidate = namedResource.Resolve();

//The qualifier let me know the used language code.
var resourceQualifier= resourceCandidate.Qualifiers.FirstOrDefault();

var languageCode = resourceQualifier.QualifierValue;
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;You can also get interesting information from the resourceCandidate object :&lt;br /&gt;
&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;IsMatch: is this resource found using the a language defined in your manifest.&lt;/li&gt;
&lt;li&gt;IsDefault : is this resource found using the default &amp;#8220;language&amp;#8221; (the one defined in your manifest) ? &lt;/li&gt;
&lt;li&gt;Score : the score of the retrieved resourceCandidate in the resource-matching algorithm used by the framework&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An interesting thing is that you can also know the score of the retrieved resourceCandidate in the resource-matching algorithm used by the framework. It&amp;#8217;s the Score property of the ResourceCandidate.&lt;/p&gt;
&lt;h3&gt;Another one&lt;/h3&gt;
&lt;p&gt;An another solution is to put the language code of each resource file inside the resource. Then you could use the ResourceLoader to get it.&lt;br /&gt;
&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/06/Resources.png&quot; alt=&quot;Resources&quot; width=&quot;372&quot; height=&quot;196&quot; class=&quot;aligncenter size-full wp-image-1450&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;Things I tried&lt;/h3&gt;
&lt;p&gt;I also tried to use the ApplicationLanguages.ManifestLanguages list but with this API I can get the language declared in my manifest, not the one actually used by the app.&lt;/p&gt;
&lt;p&gt;Same thing with ApplicationLanguages.Languages which let me know the user defined languages but not the one actually used by the app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do you know a better way ?&lt;/strong&gt;&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1445</guid>
         <pubDate>Wed, 05 Jun 2013 16:25:41 +0000</pubDate>
      </item>
      <item>
         <title>Win8/XAML : how to create a TextBlock with clickables hyperlinks in it</title>
         <link>http://www.jonathanantoine.com/2013/05/30/win8xaml-how-to-create-a-textblock-with-clickables-hyperlinks-in-it/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;Xaml is really powerful and you can build nearly any user interface you want with it. &lt;/p&gt;
&lt;p&gt;However it can be hard sometimes and &lt;strong&gt;in this post I will describe how you can create&lt;/strong&gt; something I first thought it will be easy : &lt;strong&gt;a wrapping text with hyperlinks in it&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Something like this :&lt;br /&gt;
&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/05/textWrappingWithLinkScreenshot.png&quot; alt=&quot;textWrappingWithLinkScreenshot&quot; width=&quot;471&quot; height=&quot;439&quot; class=&quot;aligncenter size-full wp-image-1425&quot;/&gt;&lt;/p&gt;
&lt;p&gt;As you will read, this is not as straightforward as I thought.&lt;br /&gt;
&lt;span id=&quot;more-1424&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt; I tried a few things before to make it works the way I want to.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;#fail 1 : use hyperlink element in the Textblock&lt;/h3&gt;
&lt;p&gt;Did you remember Silverlight (:p) ? I do and especially the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.documents.hyperlink(v=vs.95).aspx&quot;&gt;Hyperlink element&lt;/a&gt; that you can use in Textblock :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;TextBlock IsReadOnly=&amp;quot;True&amp;quot;&amp;gt;
    &amp;lt;Run&amp;gt; Displaying text with&amp;lt;/Run&amp;gt; 
     &amp;lt;Hyperlink NavigateUri=&amp;quot;http://www.infinitesquare.com&amp;quot; 
                TargetName=&amp;quot;_blank&amp;quot;&amp;gt;hyperlink&amp;lt;/Hyperlink&amp;gt;
    &amp;lt;Run&amp;gt;.&amp;lt;/Run&amp;gt;
&amp;lt;/TextBlock &amp;gt;
&lt;/pre&gt;
&lt;p&gt;It&amp;#8217;s really nice but&amp;#8230;. &lt;strong&gt;there is no hyperlink element in the Windows8 Xaml framework&lt;/strong&gt;&amp;#8230; too bad &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/frownie.png&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;#fail 2 : use the tapped event on run elements&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;There is in fact no such thing in the Windows 8 Xaml &lt;/strong&gt;Framework so this is a dead end &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/frownie.png&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;#fail 3 : use the textblock&amp;#8217;s tapped event to retrieve the aimed run element&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;My third idea was to create a textblock with runs and Underline element to recreate the same display.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then I can register myself to the Tapped event and grab the tapped run and then open the matching links.&lt;br /&gt;
I would then create something like this :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;TextBlock&amp;gt;
    
	&amp;lt;Run Text=&amp;quot;Cupcake ipsum dolor. Sit amet I love croissant fawork&amp;quot; /&amp;gt;
	&amp;lt;Run Text=&amp;quot; &amp;quot; /&amp;gt;
	&amp;lt;Underline FontFamily=&amp;quot;Segoe UI&amp;quot;&amp;gt;
		&amp;lt;Run Foreground=&amp;quot;#FFFF1BF5&amp;quot;
             Text=&amp;quot;I love ice cream&amp;quot; /&amp;gt;
	&amp;lt;/Underline&amp;gt;
	&amp;lt;Run Text=&amp;quot;. Chocolate ice cream soufflé pastry.&amp;quot; /&amp;gt;
        &amp;lt;Run Text=&amp;quot; Bear claw chocolate tart brownie apple pie.&amp;quot; /&amp;gt;
	&amp;lt;LineBreak /&amp;gt;
	&amp;lt;LineBreak /&amp;gt;
	&amp;lt;Run Text=&amp;quot;Pastry sesame snaps cotton candy jelly-o marzipan pastry&amp;quot; /&amp;gt;
        &amp;lt;Run Text=&amp;quot; cake I love faworki. Wypas I love jelly.&amp;quot; /&amp;gt;
        &amp;lt;Underline FontFamily=&amp;quot;Segoe UI&amp;quot;&amp;gt;
		&amp;lt;Run Foreground=&amp;quot;#FFFF1BF5&amp;quot;
             Text=&amp;quot;I love toffee macaroon chocolate bar.&amp;quot; /&amp;gt;
	&amp;lt;/Underline&amp;gt;
&amp;lt;/TextBlock&amp;gt;
&lt;/pre&gt;
&lt;pre&gt;
private void MyTexBlock_OnTapped(object sender, TappedRoutedEventArgs e)
{
    var run = e.OriginalSource;
}
&lt;/pre&gt;
&lt;p&gt;The problem here is that the OriginalSource element is in fact the TextBlock itself and not the Run or the Underline element I created. So &lt;strong&gt;there is no way to know which link the user touched but only it touched the TextBlock somewhere.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;#fail 4 : use a RichTextBlock with InlineUIContainer and an HyperlinkButton element&lt;/h3&gt;
&lt;p&gt;After these failures, I decided to use a weapon of mass destruction : a RichTextBlock and a InlineUIContainer element.&lt;br /&gt;
You can&amp;#8217;t just add Run inside a RichTextBlock but instead, you have to create one (or more) root paragraph element.&lt;/p&gt;
&lt;p&gt;The InlineUIContainer lets you put any FrameworkElement you want inside a document(the content of the Paragraph). You can then register handlers to the events of this FrameworkElements as you would have in any Xaml UI. &lt;/p&gt;
&lt;p&gt;In the code snippet below, I register myself to Tapped event of the Textblock I insert in my paragraph :&lt;/p&gt;
&lt;pre&gt;
&amp;lt;RichTextBlock IsTextSelectionEnabled=&amp;quot;False&amp;quot;&amp;gt;
    &amp;lt;Paragraph&amp;gt;
        &amp;lt;Run Text=&amp;quot;Cupcake ipsum dolor. Sit amet I love croissant fawork&amp;quot; /&amp;gt;
        &amp;lt;Run Text=&amp;quot;. &amp;quot; /&amp;gt;

        &amp;lt;InlineUIContainer&amp;gt;
            &amp;lt;Border Background=&amp;quot;#FFF1EFEF&amp;quot;&amp;gt;
                &amp;lt;TextBlock Tapped=&amp;quot;OnLinkTapped&amp;quot; Foreground=&amp;quot;#FFFF1BF5&amp;quot;
                           TextWrapping=&amp;quot;Wrap&amp;quot;&amp;gt; &amp;lt;Underline&amp;gt;
                    &amp;lt;Run Text=&amp;quot;I love ice cream, to write very long text &amp;quot; /&amp;gt; 
                                &amp;lt;Run Text=&amp;quot;and to take some screenshots.&amp;quot; /&amp;gt;  
                           &amp;lt;/Underline&amp;gt;
                &amp;lt;/TextBlock&amp;gt;
            &amp;lt;/Border&amp;gt;
        &amp;lt;/InlineUIContainer&amp;gt;

        &amp;lt;Run Text=&amp;quot;A Chocolate ice cream soufflé pastry. &amp;quot; /&amp;gt;
        &amp;lt;Run Text=&amp;quot;Bear claw chocolate tart brownie apple pie.&amp;quot; /&amp;gt;
    &amp;lt;/Paragraph&amp;gt;
&amp;lt;/RichTextBlock&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Wonderful&amp;#8230; wait &amp;#8230; oh no&amp;#8230; &lt;strong&gt;there is still one issue : the paragraph element will consider the InlineUIContainer as &amp;#8220;whole block&amp;#8221; and not as &amp;#8220;text&amp;#8221; and then it will wrap &lt;i&gt;strangely&lt;/i&gt; your content.&lt;/strong&gt; In this screenshot, I added a gray border around my TextBlock show this behavior to you :&lt;br /&gt;
&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/05/shouldBeThere.png&quot; alt=&quot;shouldBeThere&quot; width=&quot;882&quot; height=&quot;449&quot; class=&quot;aligncenter size-full wp-image-1438&quot;/&gt;&lt;/p&gt;
&lt;h3&gt;#Success : use a RichTextBlock and the GetPositionFromPoint method&lt;/h3&gt;
&lt;p&gt;I finally found one hack and if you know a better way, please tell me in the comment which one it is &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;My solution is to use the RichTextBlock&amp;#8217;s tapped event and its GetPositionFromPoint method&lt;/strong&gt;. This method returns a TextPointer for a given position of your RichTextBlock. This TextPointer object has a Parent property which is the TextElement (Run, Underline, Span, etc&amp;#8230;) the user clicked on : exactly what we want !&lt;/p&gt;
&lt;p&gt;My Xaml then look like this :&lt;/p&gt;
&lt;pre&gt;&amp;lt;RichTextBlock IsTextSelectionEnabled=&amp;quot;False&amp;quot;
               Margin=&amp;quot;30&amp;quot;
               Width=&amp;quot;600&amp;quot;
               TextAlignment=&amp;quot;Justify&amp;quot;
               FontSize=&amp;quot;40&amp;quot;
               TextWrapping=&amp;quot;Wrap&amp;quot;
               Tapped=&amp;quot;UIElement_OnTapped&amp;quot;&amp;gt;
    &amp;lt;Paragraph&amp;gt;
        &amp;lt;Run Text=&amp;quot;Cupcake ipsum dolor. Sit amet I love croissant fawork&amp;quot; /&amp;gt;
        &amp;lt;Run Text=&amp;quot;. &amp;quot; /&amp;gt;

        &amp;lt;Underline x:Name=&amp;quot;LinkToInfiniteSquare&amp;quot;
                   Foreground=&amp;quot;#FFFF1BF5&amp;quot;&amp;gt;
            &amp;lt;Run Text=&amp;quot;I love ice cream, to write very long text &amp;quot; /&amp;gt;
            &amp;lt;Run Text=&amp;quot;and to take some screenshots.&amp;quot; /&amp;gt;
        &amp;lt;/Underline&amp;gt;

        &amp;lt;Run Text=&amp;quot;A Chocolate ice cream soufflé pastry. &amp;quot; /&amp;gt;

        &amp;lt;Underline x:Name=&amp;quot;LinkToMyBlog&amp;quot;
                   Foreground=&amp;quot;#FFFF1BF5&amp;quot;&amp;gt;
            &amp;lt;Run Text=&amp;quot;Bear claw chocolate tart brownie apple pie.&amp;quot; /&amp;gt;
        &amp;lt;/Underline&amp;gt;

    &amp;lt;/Paragraph&amp;gt;
&amp;lt;/RichTextBlock&amp;gt;

&lt;/pre&gt;
&lt;p&gt;The last part is to &lt;strong&gt;walk trough the parents of the clicked/touched element to find out its Underline parent, read its name and launch the correct action&lt;/strong&gt;.&lt;/p&gt;
&lt;pre&gt;
private void UIElement_OnTapped(object sender, TappedRoutedEventArgs e)
{
    var richTB = sender as RichTextBlock;
    var textPointer = richTB.GetPositionFromPoint(e.GetPosition(richTB));

    var element = textPointer.Parent as TextElement;
    while (element != null &amp;amp;&amp;amp; !(element is Underline))
    {
        if (element.ContentStart != null
            &amp;amp;&amp;amp; element != element.ElementStart.Parent)
        {
            element = element.ElementStart.Parent as TextElement;
        }
        else
        {
            element = null;
        }
    }

    if (element == null) return;

    var underline = element as Underline;
    if (underline.Name == &amp;quot;LinkToInfiniteSquare&amp;quot;)
    {
        Launcher.LaunchUriAsync(new Uri(&amp;quot;http://www.infinitesquare.com&amp;quot;));
    }
    else if (underline.Name == &amp;quot;LinkToMyBlog&amp;quot;)
    {
        Launcher.LaunchUriAsync(new Uri(&amp;quot;http://www.jonathanantoine.com&amp;quot;));
    }

}

&lt;/pre&gt;
&lt;p&gt;By the way, I can not use a TextBlock element because it does not have the GetPositionFromPoint method.&lt;/p&gt;
&lt;h3&gt;Do you know a better way ?&lt;/h3&gt;
&lt;p&gt;(Please don&amp;#8217;t tell me to do it in HTML/JS :p)&lt;/p&gt;
&lt;p&gt;The source code is available &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.dropbox.com/s/aymfeixix76xyxj/WrappingTextWithLinksSample.zip&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1424</guid>
         <pubDate>Thu, 30 May 2013 12:07:31 +0000</pubDate>
      </item>
      <item>
         <title>Miscellaneous : how to receive readable .wav voicemail messages on you Windows Phone</title>
         <link>http://www.jonathanantoine.com/2013/05/20/miscellaneous-how-to-receive-readable-wav-voice-messages-on-you-windows-phone/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;I am a great fan of my Windows Phone and yesterday I found one missing feature. Since I do not have visual voice-mail (because I am using the french operator &amp;#8220;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://mobile.free.fr/&quot;&gt;Free Mobile&lt;/a&gt;&amp;#8220;), I wanted to try one of Free great service: send me each voicemail message by mail.&lt;/p&gt;
&lt;p&gt;Each time I have a new message, I receive an email with the wav audio file linked: fantastic ! Well in fact, it&amp;#8217;s not because &lt;strong&gt;my Windows Phone 8 seems not to be able to read this file&lt;/strong&gt;. Yes&amp;#8230; no need to tell me this format &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/WAV&quot;&gt;created by Microsoft and IBM exists since 1991&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;What I wanted to share with you is a free solution, while Microsoft is fixing the issue.&lt;br /&gt;
&lt;span id=&quot;more-1416&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;First of all, I don&amp;#8217;t seem &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://windowsphone.uservoice.com/forums/101801-feature-suggestions/suggestions/3378998-support-ability-to-open-wav-files-on-windows-phon&quot;&gt;to be alone with this issue and you can add your votes for a quick fix on this page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Developer one day, developer everyday : I first tried to create an app and register it for the &amp;#8220;wav&amp;#8221; files extension but it&amp;#8217;s a protected one and so we can not make an app which will be able to read wav files from mail&amp;#8230; too bad &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/frownie.png&quot; alt=&quot;:(&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;The solution I finally found out is to use the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.phoneconvert.com/&quot;&gt;phoneconvert.com&lt;/a&gt; service. It&amp;#8217;s free, and its usage is simple : forward your email to it and it will respond to you with a Windows Phone 8 compatible version of your wav file. &lt;/p&gt;
&lt;p&gt;I hope it will help you too.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1416</guid>
         <pubDate>Sun, 19 May 2013 22:00:43 +0000</pubDate>
      </item>
      <item>
         <title>WinJS : use the same data in the zoomed out and zoomed in view.</title>
         <link>http://www.jonathanantoine.com/2013/05/17/winjs-use-the-same-data-in-the-zoomed-out-and-zoomed-in-view/</link>
         <description>&lt;div style=&quot;float:right;margin-left:10px;&quot;&gt;&lt;/div&gt;&lt;p&gt;The Semantic zoom let you display your data in a zoomed out and zoomed in way. It&amp;#8217;s really fine when your data is grouped but&lt;strong&gt; sometimes you need to display a non-grouped data just in a different way with a different template&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For example, we did it in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://apps.microsoft.com/windows/fr-fr/app/larousse-illustre/37e8bb06-faf0-47e9-85cd-5f3ace70d9d8&quot;&gt;Larousse Illustré Windows 8&lt;/a&gt; app to display media in a different way when zoomed in than zoomed out :&lt;img src=&quot;http://www.jonathanantoine.com/wp-content/uploads/2013/05/zoomedInOut.png&quot; alt=&quot;zoomedInOut&quot; width=&quot;688&quot; height=&quot;260&quot; class=&quot;aligncenter size-full wp-image-1404&quot;/&gt;&lt;/p&gt;
&lt;p&gt;This is exactly the same data but shown in a different fashion. The user choose the one it prefers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But, if you try to set the same data source to the both listview in your semantic zoom, your app will crash.&lt;br /&gt;
&lt;/strong&gt;&lt;span id=&quot;more-1401&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;An exception is raised because a method &amp;#8220;itemFromDescription&amp;#8221; is not defined.&lt;/p&gt;
&lt;p&gt;The solution to make everything works is to define this method as below :&lt;/p&gt;
&lt;pre&gt;
var zoomedInListView = document.getElementById(&amp;quot;zoomedInListView&amp;quot;).winControl;
var zoomedOutListView = document.getElementById(&amp;quot;zoomedOutListView&amp;quot;).winControl;

zoomedInListView.itemDataSource = myList.dataSource;
zoomedInListView.itemDataSource.itemFromDescription
    = function (it) { return WinJS.Promise.wrap({ index: 0 }); };

zoomedOutListView.itemDataSource = myList.dataSource;
zoomedOutListView.itemDataSource.itemFromDescription
    = function (it) { return WinJS.Promise.wrap({ index: 0 }); };

&lt;/pre&gt;
&lt;p&gt;I hope this will help you &lt;img src=&quot;http://www.jonathanantoine.com/wp-includes/images/smilies/simple-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; style=&quot;height:1em;max-height:1em;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;A sample is available (scenario 2) &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.dropbox.com/s/cz736lmmctn0lvz/SemanticZoomSameData.zip?v=0swn-&quot;&gt;on my Dropbox&lt;/a&gt;.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.jonathanantoine.com/?p=1401</guid>
         <pubDate>Fri, 17 May 2013 14:13:49 +0000</pubDate>
      </item>
      <item>
         <title>The blog is dead, long live the blog !</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/t7SE72N22sE/index.php</link>
         <description>&lt;p&gt;Hello everyone,
 

The blog is dead...


This is the last post I'll do on this particular blog.

 

After some year using Dotclear as a blog engine, I decided to move to Wordpress because of its larger community and its awesome amount of plugins.
 
More over, my URL with the dash (blog.lexique-du-net.com&quot; is quite difficult to remember especially... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/08/11/The-blog-is-dead%2C-long-live-the-blog&quot;&gt;&lt;em&gt;Read&lt;/em&gt; The blog is dead, long live the blog !&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/t7SE72N22sE&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:348662b34b48d7a623225dd981acbb29</guid>
         <pubDate>Thu, 11 Aug 2011 09:32:00 +0000</pubDate>
      </item>
      <item>
         <title>MANGO live tile: use a picture in the IsolatedStorage as a background for your tile</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/FQ6RsNj3zqc/index.php</link>
         <description>&lt;p&gt;One on the nice feature coming with WP7's mango is &quot;live tiles&quot;. You can create tiles directly from your application and update them from a background agent.         Here is the sample which creates a &quot;secondary tile&quot; for your application: 
//This is a .Net class named StandardTileData
var theTile= new StandardTileData
{
Title = &quot;Secondary... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/08/03/MANGO-live-tile%3A-use-a-picture-in-the-IsolatedStorage-as-a-background-for-your-tile&quot;&gt;&lt;em&gt;Read&lt;/em&gt; MANGO live tile: use a picture in the IsolatedStorage as a background for your tile&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/FQ6RsNj3zqc&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:1ba25c47ca659e570c8e3640f409b2f7</guid>
         <pubDate>Wed, 03 Aug 2011 12:25:00 +0000</pubDate>
      </item>
      <item>
         <title>Amazing WPF Controls / JetPack Theme updated !</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/qyE-BeZbtDI/index.php</link>
         <description>&lt;p&gt;Hello,


I have updated my previously introduced control library on codeplex.
I received a lot of comments because the jetPack theme was not working fine bacause of some animation.

It is now fixed and I want to thank everyone for the feedback !__
 
Here are the list of the available updates:

JetPack Theme is now building and working fine at... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/06/13/Amazing-WPF-Controls-/-JetPack-Theme-updated-%21&quot;&gt;&lt;em&gt;Read&lt;/em&gt; Amazing WPF Controls / JetPack Theme updated !&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/qyE-BeZbtDI&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:88ead68957a351bbe11ed3474c8ea2f3</guid>
         <pubDate>Mon, 13 Jun 2011 11:56:00 +0000</pubDate>
      </item>
      <item>
         <title>[UPDATED] How to call the method from the base of the base of the current class ? (base.base.MyMethod)</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/GJOWTX66cC8/index.php</link>
         <description>&lt;p&gt;Today I encountered a tricky need in some custom control. It was inheriting from the TabControl but I didn’t want all its feature. Especially I didn’t want it to update the SelectedContent dependency property because it was keeping a strong reference to a ViewModel and keeping it away from the garbage collector.&lt;/p&gt;    &lt;p&gt; 
The problem is that the TabControl do this in an event handler of the ItemContainerGenerator’s StatusChanged event. This subscription is made in the OnInitialized method. This one is marked as protected and virtual so I could override it to do nothing but if had do so I would have loose all the work done in the base class of the TabControl which... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/05/11/How-to-call-the-method-from-the-base-of-the-base-of-the-current-class-%28base.base.MyMethod%29&quot;&gt;&lt;em&gt;Read&lt;/em&gt; [UPDATED] How to call the method from the base of the base of the current class ? (base.base.MyMethod)&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/GJOWTX66cC8&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:d900bf7d396d3bc1a150d6e19676cfd9</guid>
         <pubDate>Wed, 11 May 2011 21:56:00 +0000</pubDate>
      </item>
      <item>
         <title>What ? Dynamic resources creates Memory leaks in WPF 3.5 (SP1) ???</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/WRjZ4JkGZdY/index.php</link>
         <description>&lt;p style=&quot;margin-top:0;&quot;&gt;Everyone is told to not use DynamicResource during its childhood in WPF-(wonder)land. They are simply evil and they kill the app performance. Sometimes, we fall in the dark side of the force and use them effectively to be sure that the application will follow the trend and suits itself well. This is not as bad as it seems and it is in fact sometimes necessary and wanted.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;But today, while I was trying to improve the performance and the memory usage of a WPF application I work on, I discovered that they were also creating memory leaks! I felt betrayed. I was using them and they put a knife in my back while I trusted them to be useful.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;In this post we will see how it can happens, and how to solve this (little) issue.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;I was not alone in this situation and I found out that there were both a work-around and an hotfix available. Here is the information I gathered.
 
Description of the problem
When you create and load a ResourceDictionary, the objects you add inside are actually not created immediately. They are referenced in the form of an instance of an object... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/03/27/What-Dynamic-resources-creates-Memory-leaks-in-WPF-3.5-%28SP1%29&quot;&gt;&lt;em&gt;Read&lt;/em&gt; What ? Dynamic resources creates Memory leaks in WPF 3.5 (SP1) ???&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/WRjZ4JkGZdY&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:20f78de56ffc9f29719df87fb78511c5</guid>
         <pubDate>Sun, 27 Mar 2011 06:12:00 +0000</pubDate>
      </item>
      <item>
         <title>UIAutomation, Coded UI tests, AutomationPeer and WPF/silverlight custom controls</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/DYI1jLoMd9I/index.php</link>
         <description>&lt;p style=&quot;margin-top:0;&quot;&gt;The Coded UI Tests, available in Visual Studio Ultimate or Premium, enable the creation of automated tests for the User Interface. This is a really nice feature because you are no more forced to make &quot;hand made&quot; tests which takes hours to be performed.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;margin-top:0;&quot;&gt;The WPF controls in the framework are ready to be used by the Microsoft UI Automation which is itself used by the coded UI tests. This means that when you use the screen recorder to record the tests on your UI, it will be able to find the several control used in your application.&lt;/p&gt;
&lt;p&gt;When you create you own custom controls or extend standard one, the recorder would not be able to find them at first and so a whole part of the screen may not be available for tests. Actually, it is possible to record a test but every steps will be done using screen position: click at (120,30), drag from (120,30) to (10,40). This is really annoying because any changes in the UI may broke all your tests.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;In this post, we will see how to make a custom control fully useable in Coded UI tests scenarii. We will so answer the question &quot;Why cannot the code UI test recorder find anything inside my WPF or Silverlight custom control ?&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note: the same technique is used by the accessibility clients and by enabling this feature you also ease the people using your application through UI automation client like the partially-sighted person.&lt;/p&gt;    &lt;p&gt;How it works
Everything is based on a class named AutomationPeer. When an UI Automation client analyzes your User Interface, it looks for an automation peer and uses it to walks trough the tree of peers. The tree of peers is nearly a visual tree but it exposes only the relevant part of the interface.
 Every standard controls have a regarding... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/03/23/UIAutomation%2C-Coded-UI-tests%2C-AutomationPeer-and-WPF-custom-controls&quot;&gt;&lt;em&gt;Read&lt;/em&gt; UIAutomation, Coded UI tests, AutomationPeer and WPF/silverlight custom controls&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/DYI1jLoMd9I&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:629820d459b6479cd3dee0084d2f3179</guid>
         <pubDate>Wed, 23 Mar 2011 23:04:00 +0000</pubDate>
      </item>
      <item>
         <title>[Announcement] : Live Meeting in French about WPF 4.0 and Multitouch.</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/j-nLDZIOuVg/index.php</link>
         <description>&lt;p&gt;For those who are interested by WPF and Multitouch : I will animate a LiveMeeting on this subject tuesday 18 january in french.
 
You can subscribe to it on this page.
 
I hope to see you there.... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/01/16/%5BAnnoucment%5D-%3A-Live-Meeting-in-French-about-WPF-4.0-and-Multitouch.&quot;&gt;&lt;em&gt;Read&lt;/em&gt; [Announcement] : Live Meeting in French about WPF 4.0 and Multitouch.&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/j-nLDZIOuVg&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:f1fb3afce9b1d62a65b02dc4a510524a</guid>
         <pubDate>Sun, 16 Jan 2011 17:12:00 +0000</pubDate>
      </item>
      <item>
         <title>News, news and news !</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/Xqg6xxbMNGU/index.php</link>
         <description>&lt;p&gt;First of all, I wish and happy new year to everyone !     It started very nice for me because I received and email from Microsoft telling me that I had been given an MVP award for 2011! I am very honored to receive it and I hope I will prove I deserve it this year !     Dear Jonathan ANTOINE,       Congratulations! We are pleased to present you... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2011/01/01/News%2C-news-and-news-%21&quot;&gt;&lt;em&gt;Read&lt;/em&gt; News, news and news !&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/Xqg6xxbMNGU&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:733e11f5aa07a00b1b93a7655d1d629a</guid>
         <pubDate>Sat, 01 Jan 2011 16:54:00 +0000</pubDate>
      </item>
      <item>
         <title>[RIA Services] Why the client extended entities won't use the default backing store value ? EDITED</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/zfJ49iQO2uw/index.php</link>
         <description>&lt;p&gt;The title may not be clear but I am talking about the entities that you extends on the client side using the fact that they are partial class. You may think as I was that if you add properties in them with backing store field, the properties will get initialed nicely : this is not the case and the property will always use the default value for the... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/11/19/%5BRIA-Services%5D-Why-the-client-extended-entities-won-t-use-the-default-backing-store-value&quot;&gt;&lt;em&gt;Read&lt;/em&gt; [RIA Services] Why the client extended entities won't use the default backing store value ? EDITED&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/zfJ49iQO2uw&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:f4e152cbad435cfff073f9d18c88190a</guid>
         <pubDate>Fri, 19 Nov 2010 15:13:00 +0000</pubDate>
      </item>
      <item>
         <title>VS Tip : how to locate the active document in the solution explorer using a shortcut</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/82q64cWrmIY/index.php</link>
         <description>&lt;p&gt;When you have multiple projects in your solution, you often want to locate the active document in the solution explorer. There is a great option in Visual Studio which can do it for you all the time : “View.TrackActivityInSolutionExplorer”. 
 
But if you do not want (as me) to turn it on all the time, there is no specific option or shortcut. So I... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/11/04/VS-Tip-%3A-how-to-locate-the-active-document-in-the-solution-explorer-using-a-shortcut&quot;&gt;&lt;em&gt;Read&lt;/em&gt; VS Tip : how to locate the active document in the solution explorer using a shortcut&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/82q64cWrmIY&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:8528a0336d20cda80f60db7cdd7f5ce3</guid>
         <pubDate>Thu, 04 Nov 2010 11:39:00 +0000</pubDate>
      </item>
      <item>
         <title>Introducing the amazing WPF controls library on Codeplex !</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/4RuqpbXZfV0/index.php</link>
         <description>&lt;p&gt;Hello everyone,
 
I am pleased to announce you the creation of the Amazing WPF controls library on Codeplex !
It will contains the differents controls I describe and/or peel on this blog. I will try to make an article for each control added to the library. 
 
Here is a list of the currently available controls :
   An headered control (the one... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/10/25/Introducing-the-amazing-WPF-controls-library-on-Codeplex-%21&quot;&gt;&lt;em&gt;Read&lt;/em&gt; Introducing the amazing WPF controls library on Codeplex !&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/4RuqpbXZfV0&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:38e0ac0a863f442767c1a2a1d9bf3431</guid>
         <pubDate>Sun, 24 Oct 2010 23:19:00 +0000</pubDate>
      </item>
      <item>
         <title>How to create an hand writing to text control (ink recognizer)</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/fTsF6HxS30s/index.php</link>
         <description>&lt;p&gt;When building a (multi)touch application you may need one nice feature : translate hand-written text to real words. This open a whole new world full of possibilities like starting some actions when keywords are recognized or simply allow the users to write some text for later use.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;In this post we'll see all the step to create an hand writing to text control and how to tune it.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Specifications
The HandWritingToText controls translate the text written with it's hand by the user into &quot;computer text&quot;. The final purpose is to triggers some actions when a specific keyword is recognized and it'll so be able to recognize only one word at a time and not a whole text.
 
   The recognized text will be published via an event and... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/09/19/How-to-create-an-hand-writing-to-text-control-%28ink-recognizer%29&quot;&gt;&lt;em&gt;Read&lt;/em&gt; How to create an hand writing to text control (ink recognizer)&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/fTsF6HxS30s&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:f9aea256e97acb32c48044cd92d26be4</guid>
         <pubDate>Sun, 24 Oct 2010 22:01:00 +0000</pubDate>
      </item>
      <item>
         <title>[RIA Services] How to force the validation of my entities (and just the validation !)</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/r2Ih9Y4UWio/index.php</link>
         <description>&lt;p&gt;RIA services solves for you a lot of problems and one of them is to add validations rules on the entities both on the client and on the server side. These differents rules are checked when you submit the changes from the client to the server or when you call “EndEdit” on the entities.
 
But there is times when you want to leverage the validation... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/10/19/RIA-Services-Force-validation-on-my-entities-%28and-just-the-validation-%21%29&quot;&gt;&lt;em&gt;Read&lt;/em&gt; [RIA Services] How to force the validation of my entities (and just the validation !)&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/r2Ih9Y4UWio&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:5df300217bd11746ee7a4bd220d54d84</guid>
         <pubDate>Tue, 19 Oct 2010 10:22:00 +0000</pubDate>
      </item>
      <item>
         <title>Migrate the Jetpack theme from Silverlight to WPF</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/vBhd7ATxngo/index.php</link>
         <description>&lt;p&gt;There is a great theme named Jetpack available for Silverlight applications which can be found on the Tim Heuer web site. I was wondering if it can be used in WPF applications and the answer is yes ! Here are the modifications I had to do to make all this work :
 
   SelectionBackground replace by SelectionBrush (except for the DatePicker) 
I... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/10/14/Migrate-the-Jetpack-theme-from-Silverlight-to-WPF&quot;&gt;&lt;em&gt;Read&lt;/em&gt; Migrate the Jetpack theme from Silverlight to WPF&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/vBhd7ATxngo&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:b8f2e7c8b33b26254f7cc2e5daca903a</guid>
         <pubDate>Thu, 14 Oct 2010 10:54:00 +0000</pubDate>
      </item>
      <item>
         <title>How to create your own control library (how-to + tips)</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/lVmb0x-QdX0/index.php</link>
         <description>&lt;p&gt;Reusability and factorizing are maybe the most commons things you want and use when you are developing applications. In WPF it often means creating controls library (i don’t mean UserControl) that will be easy to use in multiple applications.
   In this post we'll see all the step to create a control library useable in differents projects. 
The... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/10/04/How-to-create-your-own-control-library&quot;&gt;&lt;em&gt;Read&lt;/em&gt; How to create your own control library (how-to + tips)&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/lVmb0x-QdX0&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:9ed22011e4c8dd030431d70034af0342</guid>
         <pubDate>Sun, 03 Oct 2010 21:27:00 +0000</pubDate>
      </item>
      <item>
         <title>WPF tip : How can I use static/dynamic resources in my tests</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/SYog1F2C9A0/index.php</link>
         <description>&lt;p&gt;You are surely, as I am, creating a lot of units tests in your WPF applications.   Some of the tests may use statics or dynamics resources declared in your application and when you launch the tests, all you get is an XamlParseException exception thrown.




System.Windows.Markup.XamlParseException: 'Provide value on... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/09/24/WPF-tip-How-can-I-use-static/dynamic-resources-in-my-tests&quot;&gt;&lt;em&gt;Read&lt;/em&gt; WPF tip : How can I use static/dynamic resources in my tests&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/SYog1F2C9A0&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:4a3dab56d52a0b0385223e6db58a46ec</guid>
         <pubDate>Fri, 24 Sep 2010 10:33:00 +0000</pubDate>
      </item>
      <item>
         <title>Quick tip : My WPF Fullscreen window still display a border on right and bottom side... how to remove them</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/2ZQoMwNTjws/index.php</link>
         <description>&lt;p&gt;Creating a fullscreen window in WPF is quite simple, you just have to set WindowState to Maximized and WindowStyle to None.

But in my current project I was facing a little drawback : a border was still visible on the bottom and on the right side of my window :





I have seen some solution on the web talking about Win32 interop and... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/09/23/Quick-tip-%3A-My-WPF-Fullscreen-window-still-display-a-border-on-right-and-bottom-side...-how-to-remove-it&quot;&gt;&lt;em&gt;Read&lt;/em&gt; Quick tip : My WPF Fullscreen window still display a border on right and bottom side... how to remove them&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/2ZQoMwNTjws&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:066836186ab1c7f17c53c7c5c0ada8c9</guid>
         <pubDate>Thu, 23 Sep 2010 09:35:00 +0000</pubDate>
      </item>
      <item>
         <title>How to create an animated expander</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/XDgDm44wZzc/index.php</link>
         <description>&lt;p&gt;The expander control can be used in a lot of situations but the one proposed by default is quite &quot;rigid&quot;. 

In this post we will discover how to animate it quite simply just via XAML !


The WPF engine lets us redefine the template of the controls and we'll just do that.



The goal aimed

What we aim is to get the same functionnality as the... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/09/21/Create-an-animated-expander&quot;&gt;&lt;em&gt;Read&lt;/em&gt; How to create an animated expander&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/XDgDm44wZzc&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:2ae908d20a12760560980c024eaabac7</guid>
         <pubDate>Tue, 21 Sep 2010 12:02:00 +0000</pubDate>
      </item>
      <item>
         <title>UserControl/Control : how to get a reference to an element of the template</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/1mQVI1CiCl4/index.php</link>
         <description>&lt;p&gt;When you want to create your own custom control you have two choices : create an UserControl or inherit from one of the &quot;Control's classes&quot; (ContentControl, ItemsControls or Control itself).
When doing so, you'll surely need to access to the visual parts of your template from the code to add to it a nice behavior.


In this post, we'll discover how... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/09/14/UserControl/Control-how-to-get-a-reference-to-an-element-of-the-template&quot;&gt;&lt;em&gt;Read&lt;/em&gt; UserControl/Control : how to get a reference to an element of the template&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/1mQVI1CiCl4&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:31729ab6c8a50b35686f1411e6c53daa</guid>
         <pubDate>Tue, 14 Sep 2010 20:42:00 +0000</pubDate>
      </item>
      <item>
         <title>.NET Framework 4, Windows Applications Development</title>
         <link>http://feedproxy.google.com/~r/JonathanAntoineOldBlog/~3/vuP99C3vDlE/index.php</link>
         <description>&lt;p&gt;I am now certified &quot; .NET Framework 4, Windows Applications Development&quot;.


I passed the certification during the beta process and the results are out. I can now use this nice logo anywhere ^^ :... &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.lexique-du-net.com/index.php?post/2010/06/24/.NET-Framework-4%2C-Windows-Applications-Development&quot;&gt;&lt;em&gt;Read&lt;/em&gt; .NET Framework 4, Windows Applications Development&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JonathanAntoineOldBlog/~4/vuP99C3vDlE&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <guid isPermaLink="false">urn:md5:bc17957967d761091687b9b9694b2180</guid>
         <pubDate>Thu, 24 Jun 2010 14:35:00 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe4.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 23:19:00 UTC 2015 -->
