<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">XAML "for real" / XAML "dans la vraie vie"</title><subtitle type="html">Luc Vo Van's Blog</subtitle><id>http://blogs.msdn.com/luc/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/luc/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-10-23T18:35:00Z</updated><entry><title>Introduction a WCF Data Services</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/12/07/introduction-a-wcf-data-services.aspx" /><id>http://blogs.msdn.com/luc/archive/2009/12/07/introduction-a-wcf-data-services.aspx</id><published>2009-12-07T07:23:19Z</published><updated>2009-12-07T07:23:19Z</updated><content type="html">&lt;p&gt;Benoit Sarie, le plus franchouillard de mes collègues, a écrit une très intéressante &lt;a href="http://blogs.msdn.com/benoitsarie/archive/tags/ADO.NET+DataServices/default.aspx"&gt;série de post sur WCF Data Services&lt;/a&gt; (préalablement connu sous le nom d’ADO.NET Data Services). La série commence par la mise en place d’un environnement pour WCFDS, puis traite des sujets pragmatiques comme le&amp;#160; &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/10/27/how-to-request-your-ado-net-data-services.aspx"&gt;requêtage&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/11/11/ado-net-dataservices-operations-and-interceptors.aspx"&gt;l’interception de requêtes&lt;/a&gt; et bien entendu &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/11/17/ado-net-data-services-how-to-consume-my-ado-net-data-services-in-wpf.aspx"&gt;la consommation des données&lt;/a&gt; exposée par un client riche. Personnellement, et ayant toujours du mal à retenir les syntaxes, mon post préféré est celui résumant la syntaxe des reqûetes les plus fréquemment utilisées.&lt;/p&gt;  &lt;p&gt;Pour ceux d’entre vous n’ayant jamais entendu parlé de &lt;a href="http://msdn.microsoft.com/en-us/library/cc668792.aspx"&gt;WCF Data Services&lt;/a&gt;, il s’agit d’une couche d’accès REST permettant de requêter vos données par le biais d’URIs.&lt;/p&gt;  &lt;p&gt;Lien: &lt;a href="http://blogs.msdn.com/benoitsarie"&gt;Benoit Sarie’s Blog&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933300" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /><category term="WCF Data Services" scheme="http://blogs.msdn.com/luc/archive/tags/WCF+Data+Services/default.aspx" /></entry><entry><title>Introduction to WCF Data Services</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/12/07/introduction-to-wcf-data-services.aspx" /><id>http://blogs.msdn.com/luc/archive/2009/12/07/introduction-to-wcf-data-services.aspx</id><published>2009-12-07T07:22:59Z</published><updated>2009-12-07T07:22:59Z</updated><content type="html">&lt;p&gt;Benoit Sarie, my franchouillardest colleague, has written a &lt;a href="http://blogs.msdn.com/benoitsarie/archive/tags/ADO.NET+DataServices/default.aspx"&gt;series of post about WCF Data Services&lt;/a&gt; (formerly known as ADO.NET Data Services). It starts off with setting up a WCFDS environment, and quickly delves into pragmatic topics such as &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/10/27/how-to-request-your-ado-net-data-services.aspx"&gt;querying&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/11/11/ado-net-dataservices-operations-and-interceptors.aspx"&gt;intercepting requests&lt;/a&gt; and of course &lt;a href="http://blogs.msdn.com/benoitsarie/archive/2009/11/17/ado-net-data-services-how-to-consume-my-ado-net-data-services-in-wpf.aspx"&gt;consuming&lt;/a&gt; the exposed data from a rich client. Since I can never manage to remember syntactic stuff, my favorite post is the one about querying which sums up the some of the most frequently used queries&lt;/p&gt;  &lt;p&gt;For those of you who have never heard of &lt;a href="http://msdn.microsoft.com/en-us/library/cc668792.aspx"&gt;WCF Data Services&lt;/a&gt;, it is basically a data access layer allowing querying of your data through URIs.&lt;/p&gt;  &lt;p&gt;Link: &lt;a href="http://blogs.msdn.com/benoitsarie"&gt;Benoit Sarie’s Blog&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933299" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /><category term="WCF Data Services" scheme="http://blogs.msdn.com/luc/archive/tags/WCF+Data+Services/default.aspx" /></entry><entry><title>On Silverlight 4 Beta / Silverlight 3 backward compatibility</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/12/01/on-silverlight-4-beta-silverlight-3-backward-compatibility.aspx" /><id>http://blogs.msdn.com/luc/archive/2009/12/01/on-silverlight-4-beta-silverlight-3-backward-compatibility.aspx</id><published>2009-12-01T14:50:29Z</published><updated>2009-12-01T14:50:29Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Clarified the term &lt;em&gt;quirks mode&lt;/em&gt; which Silverlight 4 implements to ensure compatibility with existing Silverlight 3 applications&lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.net/getstarted/silverlight-4-beta/"&gt;Silverlight 4 Beta&lt;/a&gt; has publicly been among us for over a week now, and the customer I’m currently working for is jumping on the Silverlight 4 bandwagon thanks to its slew of &lt;a href="http://silverlight.net/getstarted/silverlight-4-beta/#whatsnew"&gt;new features&lt;/a&gt;. A very legitimate question we had when “porting” his application to Silverlight 4 / Visual Studio 2010 was about the way Silverlight 4 handled backward compatibility for existing Silverlight 3 applications and code. Here is a short brief on the subject :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight 4 is not an incremental update like .NET 3.0 was for .NET 2.0; this means that the runtime has evolved between the two versions &lt;/li&gt;    &lt;li&gt;Silverlight 4 features a &lt;em&gt;quirks&lt;/em&gt; &lt;em&gt;mode&lt;/em&gt; to make sure your Silverlight 3 applications run as they always did. Technically, the Silverlight runtime does this based on the XAP’s manifest : if a runtime version prior to 4.0 is specified, Silverlight runs in &lt;em&gt;quirks&lt;/em&gt; &lt;em&gt;mode&lt;/em&gt;. This mode faithfully reproduces the behavior of previous runtimes (Silverlight 3, but also 1 and 2) by wrapping around changes between versions.       &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/OnSilverlight4BetaSilverlight3backwardco_668/clip_image001_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/OnSilverlight4BetaSilverlight3backwardco_668/clip_image001_thumb.jpg" width="217" height="118" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;When upgrading your application to Silverlight 4 check for binary assemblies (DLL) compiled with Silverlight 3 included in your new XAP file, as they will run outside of quirks mode. As it is very often the case, mixing binary versions should be avoided.       &lt;ul&gt;       &lt;li&gt;&lt;font face="Courier New"&gt;MyApp.xap (targeting SL4)&lt;/font&gt; &lt;/li&gt;        &lt;li&gt;&lt;font face="Courier New"&gt;Main.dll&lt;/font&gt;           &lt;ul&gt;           &lt;li&gt;&lt;font face="Courier New"&gt;SL4Assembly.dll&lt;/font&gt; &lt;/li&gt;            &lt;li&gt;&lt;font face="Courier New"&gt;SL3Assembly.dll &amp;lt;- this will not run in &lt;em&gt;quirks&lt;/em&gt; mode!&lt;/font&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;When using &lt;a href="http://compositewpf.codeplex.com/"&gt;Prism&lt;/a&gt;, since all assemblies load in the same AppDomain, they will all run in the mode defined by the main XAP’s manifest &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In order to read AppManifest.xml, just explore the XAP file as if it were a ZIP file.&lt;/p&gt;  &lt;p&gt;Note: Neat! My &lt;a href="http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx"&gt;previous post&lt;/a&gt; was featured on &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/TWC9-XAML-tools-Silverlight-for-Live-Writer-Surface-SDK/"&gt;This Week On Channel 9&lt;/a&gt; !&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9930784" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author></entry><entry><title>Silverlight 4 et la rétrocompatibilité (compatibilité ascendante) avec Silverlight 3</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/12/01/silverlight-4-et-la-r-trocompatibilit-compatibilit-ascendante-avec-silverlight-3.aspx" /><id>http://blogs.msdn.com/luc/archive/2009/12/01/silverlight-4-et-la-r-trocompatibilit-compatibilit-ascendante-avec-silverlight-3.aspx</id><published>2009-12-01T07:38:00Z</published><updated>2009-12-01T07:38:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Clarification de la fonctionnalité quirks mode, qui assure une compatibilité ascendante&lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.net/getstarted/silverlight-4-beta/" mce_href="http://silverlight.net/getstarted/silverlight-4-beta/"&gt;Silverlight 4 Beta&lt;/a&gt; est disponible publiquement depuis plus d’une semaine, et le client avec qui je travaille actuellement a décidé de cibler cette version afin de profiter des nombreuses &lt;a href="http://silverlight.net/getstarted/silverlight-4-beta/#whatsnew" mce_href="http://silverlight.net/getstarted/silverlight-4-beta/#whatsnew"&gt;nouvelles fonctionnalités&lt;/a&gt; offertes. Une question légitime qu’il s’est posé lors du passage vers Silverlight 4/Visual Studio 2010 est celle de la rétrocompatibilité: comment Silverlight 4 gère-t-il les applications ciblant une version précédente du runtime? Voici un bref résumé sur le sujet :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight 4 n'est pas uniquement un ajout de nouvelles classes comme l’a été .NET 3.0 par rapport à .NET 2.0. Il s’agit d’une évolution: le runtime du 4 remplace celui du 3 &lt;/li&gt;    &lt;li&gt;Silverlight implemente le &lt;em&gt;quirks mode&lt;/em&gt; pour assurer que la bonne exécution des applications existantes. Lorsque le manifest d’un XAP précise une version antérieure de SL3 dans son manifest, SL4 passe en mode quirks. Ce mode implémente des mécanismes permettant de s’exécuter à la manière des versions antérieures du runtime (il traite également de la rétrocompatibilité vers les runtimes 1 et 2).       &lt;br /&gt;&lt;a href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlight4etlartrocompatibilitavecSilv_C01/clip_image001_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlight4etlartrocompatibilitavecSilv_C01/clip_image001_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlight4etlartrocompatibilitavecSilv_C01/clip_image001_thumb.jpg" width="217" height="118" mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlight4etlartrocompatibilitavecSilv_C01/clip_image001_thumb.jpg" /&gt;&lt;/a&gt;       &lt;br /&gt;Lors de la mise à jour d’une application vers Silverlight 4, vérifiez les assemblies (DLL) binaires SL3 présente dans le nouveau XAP en effet, l’application ayant pour cible la version 4, elle s’exécutera hors du mode quirks. Il faut en général éviter de mélanger des binaires ciblant des runtimes différents.      &lt;ul&gt;       &lt;li&gt;&lt;font face="Courier New"&gt;AppManifest.xaml (ciblant SL4)&lt;/font&gt; &lt;/li&gt;        &lt;li&gt;&lt;font face="Courier New"&gt;Main.dll&lt;/font&gt;           &lt;ul&gt;           &lt;li&gt;&lt;font face="Courier New"&gt;SL4Assembly.dll&lt;/font&gt; &lt;/li&gt;            &lt;li&gt;&lt;font face="Courier New"&gt;SL3Assembly.dll &amp;lt;- ne s’exécutera pas en mode &lt;em&gt;quirks&lt;/em&gt; !&lt;/font&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Lorsque l’on utilise &lt;a href="http://compositewpf.codeplex.com/" mce_href="http://compositewpf.codeplex.com/"&gt;Prism&lt;/a&gt;, puisque toutes les assemblies se chargent dans le même AppDomain, celles-ci s’exécuteront toutes dans le mode défini par le manifest du XAP principal&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Pour voir le manifest d’une application (XAP), il vous suffit d’explorer le fichier XAP comme s’il s’agissait d’un fichier ZIP.&lt;/p&gt;  &lt;p&gt;Note: Cool! Mon &lt;a href="http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx" mce_href="http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx"&gt;previous précédent&lt;/a&gt; a été cité sur &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/TWC9-XAML-tools-Silverlight-for-Live-Writer-Surface-SDK/" mce_href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/TWC9-XAML-tools-Silverlight-for-Live-Writer-Surface-SDK/"&gt;This Week On Channel 9&lt;/a&gt; (15:00) !&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9930623" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author></entry><entry><title>Windows Live Writer Silverlight App Plugin</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="187362" href="http://blogs.msdn.com/luc/attachment/9925493.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/11/19/windows-live-writer-silverlight-app-plugin.aspx</id><published>2009-11-19T16:01:00Z</published><updated>2009-11-19T16:01:00Z</updated><content type="html">&lt;P&gt;I’ve been blogging about WPF and Silverlight using &lt;A href="http://download.live.com/writer" mce_href="http://download.live.com/writer"&gt;Windows Live Writer&lt;/A&gt; (WLW) for quite a while now. But there’s something I found really awkward : I never actually had some Silverlight running within a post! Since a XAP is worth way more than static screenshots, I got to work and three hours later I had the Silverlight App Plugin&amp;nbsp; working. It is now as easy as uploading your XAP, clicking “Silverlight XAP” from WLW, and paste the XAP’s URL to have your application running within your post.&lt;/P&gt;  &lt;p&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="200" autoupdate="true"&gt; &lt;param name="source" value="http://msdn.thelemmings.net/20091119-SimpleSlideShow.xap" /&gt; &lt;param name="minRuntimeVersion" value="3.0.40624.0" /&gt; &lt;param name="background" value="White" /&gt; &lt;param name="autoUpgrade" value="true" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40624.0" style="text-decoration:none"&gt;          			  &lt;img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;/p&gt;  &lt;P&gt;I’ve also added some optional parameters such as plugin size, background color as well as the minimum version of Silverlight required.&lt;/P&gt; &lt;P&gt;The plugin setup and its source code are attached to this post and are provided as examples. Happy blogging!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9925493" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /></entry><entry><title>Silverlight App Plugin pour Windows Live Writer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/11/19/silverlight-app-plugin-pour-windows-live-writer.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="187362" href="http://blogs.msdn.com/luc/attachment/9925328.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/11/19/silverlight-app-plugin-pour-windows-live-writer.aspx</id><published>2009-11-19T11:47:00Z</published><updated>2009-11-19T11:47:00Z</updated><content type="html">&lt;p&gt;Cela fait quelque temps que je blog à propos de WPF et Silverlight avec &lt;a href="http://download.live.com/writer" mce_href="http://download.live.com/writer"&gt;Windows Live Writer&lt;/a&gt; (WLW). Une chose me chiffonnait cependant… je n’avais jusqu’à maintenant jamais inclus d’application Silverlight directement dans mes posts ! Puisqu’un XAP vaut mieux que des images statiques, je me suis mis au travail et quelques heures plus tard le Silverlight App Plugin était né. Il suffit maintenant d’uploader votre XAP et de cliquer sur “Siverlight XAP…” dans WLW pour insérer l’application dans votre post.&lt;/p&gt;  &lt;p&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="200" autoupdate="true"&gt; &lt;param name="source" value="http://msdn.thelemmings.net/20091119-SimpleSlideShow.xap" /&gt; &lt;param name="minRuntimeVersion" value="3.0.40624.0" /&gt; &lt;param name="background" value="White" /&gt; &lt;param name="autoUpgrade" value="true" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40624.0" style="text-decoration:none"&gt;          			  &lt;img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none" /&gt; &lt;/a&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;J’ai également ajouté quelques paramètres optionnels comme la taille du plugin, la couleur de fond ou encore la version minimale de Silverlight requise.&lt;/p&gt;  &lt;p&gt;Le plugin et son code source sont attachés à ce post, et sont fournis à titre d'exemple. Bon blogging!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9925328" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Ajouter des icônes vectorielles à vos application … grâce aux polices de caractère</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/11/08/ajouter-des-ic-nes-vectorielles-vos-application-gr-ce-aux-polices-de-caract-re.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="36418" href="http://blogs.msdn.com/luc/attachment/9919285.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/11/08/ajouter-des-ic-nes-vectorielles-vos-application-gr-ce-aux-polices-de-caract-re.aspx</id><published>2009-11-08T20:26:00Z</published><updated>2009-11-08T20:26:00Z</updated><content type="html">&lt;P&gt;Trouver des icônes est souvent une tâche pénible pour les développeurs. Ce post décrit une technique simple pour utiliser des polices « symboliques » dans vos applications WPF et Silverlight permettant ainsi :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;D’avoir des icônes vectoriels donc retaillables sans perte&lt;/LI&gt;
&lt;LI&gt;Une amélioration potentielle des performances en passant par la stack de rendu de texte optimisée&lt;/LI&gt;
&lt;LI&gt;Avoir votre jeu d’icônes dans un fichier unique (Silverlight), voire sans aucune ressource supplémentaire (WPF)&lt;/LI&gt;
&lt;LI&gt;Inconvénient : les polices étant définies de manière monochromatique, elles ne sont affichées qu’avec une unique brush. Bien que vous puissiez définir une brush des plus&amp;nbsp; extravagantes, vos icônes sont intrinsèquement monochromes.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_4.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=FontsAsVectorIcons border=0 alt=FontsAsVectorIcons src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_thumb_1.png" width=240 height=37 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Pour les applications WPF, il suffit de définir en tant que FontFamily le nom d’une police disponible localement : &lt;BR&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="Wingdings"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Sur Silverlight 2 et supérieur, vous pouvez embarquer une police directement dans votre XAP en tant que fichier ressource. Vous pourrez ensuite la référencer par la syntaxe suivante : &lt;BR&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="MyFontFile.ttf#My Font"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;ou si vous chargez la police depuis une autre assembly&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="/MyAssembly;Component/MyFontFile.ttf#My Font"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;En Silverlight, spécifier le nom d’une police disponible localement marchera dans certain cas, car les polices de l’OS sont mises à contribution lors de la résolution de FontFamily. Ce n’est cependant pas une bonne pratique de portabilité. Par exemple, Wingdings n’est pas disponible par défaut sur d’anciennes versions de Mac OS X, ce qui engendre l’utilisation de la police par défaut « Portable ». &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_mac_4.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_mac_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=FontsAsVectorIcons_mac border=0 alt=FontsAsVectorIcons_mac src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_mac_thumb_1.png" width=240 height=173 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Ajouterdesicnesvectoriellesvosapplicatio_12D76/FontsAsVectorIcons_mac_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Veillez ainsi à inclure les polices que vous utilisez, et dont vous disposez des droits de distribution, dans vos XAPs. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Important&lt;/U&gt; : Les polices disponibles avec votre système, par exemple Wingdings sous Windows, sont soumises à des droits d’auteurs et ne sont pas librement distribuables. Vous pouvez obtenir des polices libres de droit sur le web en&amp;nbsp; &lt;A href="http://www.bing.com/search?q=free+fonts&amp;amp;form=QBRE&amp;amp;filt=all" mce_href="http://www.bing.com/search?q=free+fonts&amp;amp;form=QBRE&amp;amp;filt=all"&gt;utilisant votre moteur de recherche préféré&lt;/A&gt; ou en contactant le détenteur des droits de la police que vous souhaitez utiliser. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Comme toujours, j’espère que ce post vous sera utile !&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919285" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="D&amp;#233;butant" scheme="http://blogs.msdn.com/luc/archive/tags/D_26002300_233_3B00_butant/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Get whole sets of vector icons using … Fonts!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/11/08/get-whole-sets-of-vector-icons-using-fonts.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="36418" href="http://blogs.msdn.com/luc/attachment/9919284.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/11/08/get-whole-sets-of-vector-icons-using-fonts.aspx</id><published>2009-11-08T20:21:00Z</published><updated>2009-11-08T20:21:00Z</updated><content type="html">&lt;P&gt;Finding icons is a tedious task for most developers. In this post I will demonstrate how to use “symbolic” fonts in your WPF or Silverlight applications, which provide the following benefits:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Vector icons that are smoothly scalable &lt;/LI&gt;
&lt;LI&gt;Potentially better performance, using the platforms’ optimized text rendering stack &lt;/LI&gt;
&lt;LI&gt;Get a whole set of icons in single resource file (Silverlight), or no embedded resource at all (WPF) &lt;/LI&gt;
&lt;LI&gt;Caveat: fonts are only rendered using a single brush. Just like any other text content you can make your own fancy brush, but your icons are defined monochromatically &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_2.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=FontsAsVectorIcons border=0 alt=FontsAsVectorIcons src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_thumb.png" width=240 height=37 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;For WPF applications, there is nothing to do but specify a locally available font for the FontFamily property: &lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="Wingdings"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;For Silverlight 2 or later application, leverage the embedded font feature by embedding your font files as resources. Then reference them using the following syntax: &lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="MyFontFile.ttf#My Font"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;or, if loading, your font from a different assembly&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; MARGIN-LEFT: 36pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; FontFamily&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="/MyAssembly;Component/MyFontFile.ttf#My Font"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="A B C 7 8 9"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Simply specifying the font name like in WPF will work most of the time since Silverlight leverages the OS’ font system to resolve font families, but this is not good practice. For example Wingdings is not available by default on older versions of Mac OS X, which will cause Silverlight to fall back to the portable font on this platform.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_mac_2.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_mac_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=FontsAsVectorIcons_mac border=0 alt=FontsAsVectorIcons_mac src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_mac_thumb.png" width=240 height=173 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/GetwholesetsofvectoriconsusingFonts_12C66/FontsAsVectorIcons_mac_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Thus, make sure that the fonts you use are embedded in your application and that you have the right to redistribute them. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Important&lt;/U&gt;: Be aware that most fonts usually available on your system, such as Wingdings on Windows, are copyrighted and not freely redistributable. You can get freely redistributable fonts from the web using your &lt;A href="http://www.bing.com/search?q=free+fonts&amp;amp;form=QBRE&amp;amp;filt=all" mce_href="http://www.bing.com/search?q=free+fonts&amp;amp;form=QBRE&amp;amp;filt=all"&gt;favorite search engine&lt;/A&gt; or contact the copyright holder to get information about font licensing. &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;As always, I hope you find this trick useful!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919284" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="Beginner" scheme="http://blogs.msdn.com/luc/archive/tags/Beginner/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /></entry><entry><title>Silverlight: accéder à des fichiers en dehors du répertoire ClientBin</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/28/silverlight-acc-der-des-fichiers-en-dehors-du-r-pertoire-clientbin.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="88295" href="http://blogs.msdn.com/luc/attachment/9914047.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/28/silverlight-acc-der-des-fichiers-en-dehors-du-r-pertoire-clientbin.aspx</id><published>2009-10-28T12:59:00Z</published><updated>2009-10-28T12:59:00Z</updated><content type="html">&lt;P&gt;Accéder à un fichier quelconque sur votre site web est une action très courante dans les scénarios RIA. C’est d’ailleurs très facile avec Silverlight, si vos ressources se situent dans le répertoire &lt;STRONG&gt;ClientBin&lt;/STRONG&gt;, ou si vous disposez de l’URI absolue (complète) du fichier en question. Malheureusement, la notation &lt;STRONG&gt;../&lt;/STRONG&gt; ne permet pas à ce jour de remonter au dessus du répertoire ClientBin. Ce post montre une solution permettant d’accéder à un fichier hors de ce répertoire et de façon relative.&lt;/P&gt;
&lt;P&gt;Imaginons que vous souhaitiez accéder aux fichiers &lt;STRONG&gt;Images/MyRobots.jpg&lt;/STRONG&gt; ou &lt;STRONG&gt;Desert.jpg&lt;/STRONG&gt;, tous deux hors du répertoire &lt;STRONG&gt;ClientBin&lt;/STRONG&gt; : &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_thumb.png" width=244 height=200 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Comme mentionné précédemment, l’utilisation de &lt;STRONG&gt;../&lt;/STRONG&gt; ou &lt;STRONG&gt;/&lt;/STRONG&gt; dans vos URI Silverlight 3 ne permettra pas de remonter dans l’arborescence. La seule façon d’accéder à ces images serait d’utiliser une URI absolue (du type &lt;STRONG&gt;&lt;A href="http://www.abc.com/mysite/Images/MyRobots.jpg" mce_href="http://www.abc.com/mysite/Images/MyRobots.jpg"&gt;http://www.abc.com/mysite/Images/MyRobots.jpg&lt;/A&gt;&lt;/STRONG&gt;), ce qui ne vous conviendra probablement pas car il faudrait recompiler votre application si votre site vient à être déplacé. &lt;/P&gt;
&lt;P&gt;La solution consiste à déterminer &lt;EM&gt;au runtime&lt;/EM&gt;, le chemin absolu de votre application et de l’utiliser comme préfixe aux ressources auquelles vous souhaitez accéder. Cette adresse est obtenue par le biais du code suivant:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #2b91af; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;Application&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;.Current.Host.Source.AbsoluteUri&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Puis supprimez simplement &lt;STRONG&gt;ClientBin&lt;/STRONG&gt; :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #2b91af; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;Regex&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;.Replace(&lt;SPAN style="COLOR: #2b91af"&gt;Application&lt;/SPAN&gt;.Current.Host.Source.AbsoluteUri, &lt;SPAN style="COLOR: #a31515"&gt;@"ClientBin/[\w/.]*"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Empty); &lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Comme à l’habitude, un projet exemple est attaché à ce post, et il fait usage de cette technique par le biais d’un Binding et d’un converter, et par une propriété statique.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Image&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Source&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; WebSiteRelativeURIConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;=Images&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;/&lt;SPAN style="COLOR: blue"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Path&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=MyImageFilename/&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: en-us" lang=EN-US&gt; &lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_thumb_1.png" width=178 height=244 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/Silverlightaccderdesfichiersendehorsdurp_C4C2/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;En espérant que vous trouverez cela utile :)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9914047" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="D&amp;#233;butant" scheme="http://blogs.msdn.com/luc/archive/tags/D_26002300_233_3B00_butant/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Silverlight: Accessing files outside of the ClientBin directory of your website using a relative URI</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/28/silverlight-accessing-files-outside-of-the-clientbin-directory-of-your-website-using-a-relative-uri.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="48332" href="http://blogs.msdn.com/luc/attachment/9913980.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/28/silverlight-accessing-files-outside-of-the-clientbin-directory-of-your-website-using-a-relative-uri.aspx</id><published>2009-10-28T09:03:00Z</published><updated>2009-10-28T09:03:00Z</updated><content type="html">&lt;P&gt;Accessing an arbitrary file on your website is a very common need in RIA scenarios. This is easily done from Silverlight when the files you are trying to access are under the &lt;STRONG&gt;ClientBin&lt;/STRONG&gt; directory, or given an absolute URI path to the targeted file. Unfortunately, the &lt;STRONG&gt;../&lt;/STRONG&gt; notation in Silverlight URIs&amp;nbsp; does not go up from the ClientBin directory.&lt;/P&gt;
&lt;P&gt;Let’s say you want to access &lt;STRONG&gt;MyRobots.jpg&lt;/STRONG&gt; from your site’s Images directory : &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_thumb_2.png" width=244 height=192 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As previously stated, using &lt;STRONG&gt;../&lt;/STRONG&gt; or just &lt;STRONG&gt;/&lt;/STRONG&gt; in Silverlight 3 will only go up to the ClientBin directory. The only way to gain access to the image is to use an absolute URI in the form of &lt;STRONG&gt;http://www.abc.com/mysite/Images/MyRobots.jpg&lt;/STRONG&gt;, which you probably do not want as moving your application to another site would require a recompilation of your program.&lt;/P&gt;
&lt;P&gt;The solution is to determine &lt;EM&gt;at runtime&lt;/EM&gt; the absolute path of your application, and use it as a prefix to the resources you want to access. You can get your application’s absolute URI using the following code:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #2b91af; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;Application&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;.Current.Host.Source.AbsoluteUri&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Just remove the ClientBin part and you are ready to go:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #2b91af; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;Regex&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;.Replace(&lt;SPAN style="COLOR: #2b91af"&gt;Application&lt;/SPAN&gt;.Current.Host.Source.AbsoluteUri, &lt;SPAN style="COLOR: #a31515"&gt;@"ClientBin/[\w/.]*"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Empty);&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;As usual, an example project is attached, where I make use of this technique in a Binding with a Converter and a static property.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;Image&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Source&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;="{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; WebSiteRelativeURIConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;=Images&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;/&lt;SPAN style="COLOR: blue"&gt;,&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Path&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=MyImageFilename/&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_thumb_3.png" width=236 height=315 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/SilverlightAccessingfilesoutsideoftheCli_8D6E/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Have fun!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913980" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Beginner" scheme="http://blogs.msdn.com/luc/archive/tags/Beginner/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /></entry><entry><title>The FormatConverter, and XamlParseExceptions in Microsoft Expression Blend</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/27/the-formatconverter-and-xamlparseexceptions-in-microsoft-expression-blend.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="44576" href="http://blogs.msdn.com/luc/attachment/9913432.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/27/the-formatconverter-and-xamlparseexceptions-in-microsoft-expression-blend.aspx</id><published>2009-10-27T10:56:00Z</published><updated>2009-10-27T10:56:00Z</updated><content type="html">&lt;P&gt;A converter we very often use and reimplement is the so-called FormatConverter, which takes a string as a value and uses with the converter’s parameter in a call to &lt;A href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx"&gt;String.Format&lt;/A&gt;. This eases sometimes shortens the XAML by quite a bit when concatenating strings, or can also be used to apply specific formatting to floating point numbers or dates.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; Convert(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; value, &lt;SPAN style="COLOR: #2b91af"&gt;Type&lt;/SPAN&gt; targetType, &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; parameter, System.Globalization.&lt;SPAN style="COLOR: #2b91af"&gt;CultureInfo&lt;/SPAN&gt; culture) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;{&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (value == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;var&lt;/SPAN&gt; parm = parameter &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(parm)) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; value;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Format(parm, value); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;/SPAN&gt;&amp;nbsp; &lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Which is used as follows :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; MyValue&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;,&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; BlendableFormatConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;=&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;'{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;0&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;0&lt;SPAN style="COLOR: blue"&gt;.&lt;/SPAN&gt;00&lt;SPAN style="COLOR: blue"&gt;}&lt;/SPAN&gt; €&lt;SPAN style="COLOR: blue"&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;} &lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;Note that we escape the target string with single quotes, and that we use the &lt;STRONG&gt;{0}&lt;/STRONG&gt; notation to specify the binding’s value we want to format.&lt;/P&gt;
&lt;P&gt;The naive implementation for this converter has a major drawback : braces are reserved for XAML markup extensions, and they cause syntax/parsing errors with WPF and Expression Blend. Silverlight 3’s XAML parser being more permissive, the converter compiles and runs fine, but still causes an exception in Expression Blend.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_2.png"&gt;&lt;IMG title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_thumb.png" width=391 height=326&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The workaround for this is quite simple: replace braces with square brackets in the XAML, and do the reverse in the converter:&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; Convert(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; value, &lt;SPAN style="COLOR: #2b91af"&gt;Type&lt;/SPAN&gt; targetType, &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; parameter, System.Globalization.&lt;SPAN style="COLOR: #2b91af"&gt;CultureInfo&lt;/SPAN&gt; culture) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;{&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (value == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;; &lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;var&lt;/SPAN&gt; parm = parameter &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;; &lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(parm)) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; value; &lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;parm.Replace(&lt;SPAN style="COLOR: #a31515"&gt;'['&lt;/SPAN&gt;,&lt;SPAN style="COLOR: #a31515"&gt;'{'&lt;/SPAN&gt;).Replace(&lt;SPAN style="COLOR: #a31515"&gt;']'&lt;/SPAN&gt;,&lt;SPAN style="COLOR: #a31515"&gt;'}'&lt;/SPAN&gt;)&lt;/SPAN&gt;, value); &lt;/P&gt;&lt;/SPAN&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;} &lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;Which is used as follows :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; MyValue&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;,&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; BlendableFormatConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;=&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;'[&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;0&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;0&lt;SPAN style="COLOR: blue"&gt;.&lt;/SPAN&gt;00&lt;SPAN style="COLOR: blue"&gt;]&lt;/SPAN&gt; €&lt;SPAN style="COLOR: blue"&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;This trick is simple, works on both frameworks, and will probably enlighten the life of your favorite XAML designer/integrator :)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913432" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="Interm&amp;#233;diaire" scheme="http://blogs.msdn.com/luc/archive/tags/Interm_26002300_233_3B00_diaire/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /></entry><entry><title>Le FormatConverter, et les XamlParseException dans Microsoft Expression Blend</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/27/le-formatconverter-et-les-xamlparseexception-dans-microsoft-expression-blend.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="44576" href="http://blogs.msdn.com/luc/attachment/9913420.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/27/le-formatconverter-et-les-xamlparseexception-dans-microsoft-expression-blend.aspx</id><published>2009-10-27T10:15:00Z</published><updated>2009-10-27T10:15:00Z</updated><content type="html">&lt;P&gt;Un converter que l’on voit et réimplémente très souvent est le FormatConverter, qui consiste à prendre en entrée une chaîne et l’utiliser comme paramètre pour la méthode &lt;A href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx"&gt;String.Format&lt;/A&gt;. Cela permet par exemple d’éviter une redondance de runs lorsque l’on souhaite concaténer des chaînes, ou encore d’appliquer un formatage spécifique aux flottants ou aux dates.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; Convert(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; value, &lt;SPAN style="COLOR: #2b91af"&gt;Type&lt;/SPAN&gt; targetType, &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; parameter, System.Globalization.&lt;SPAN style="COLOR: #2b91af"&gt;CultureInfo&lt;/SPAN&gt; culture)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (value == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;var&lt;/SPAN&gt; parm = parameter &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(parm)) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Format(parm, value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;Ce qui donne à l’utilisation :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; MyValue&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;,&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; BlendableFormatConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;=&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;'{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-highlight: yellow" lang=EN-US&gt;0&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;0&lt;SPAN style="COLOR: blue"&gt;.&lt;/SPAN&gt;00&lt;SPAN style="COLOR: blue"&gt;}&lt;/SPAN&gt; €&lt;SPAN style="COLOR: blue"&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Notons que l’on échappe ici la chaîne à traiter par des apostrophes, et que l’on doit utiliser la notation &lt;STRONG&gt;{0}&lt;/STRONG&gt; pour spécifier l’emplacement de la valeur du binding à formater.&lt;/P&gt;
&lt;P&gt;L’implémentation naturelle de ce converter a un inconvénient majeur : les accolades étant normalement réservées aux markup extensions XAML, elles provoquent des erreurs de syntaxe/parsing avec&amp;nbsp; WPF et Expression Blend. Le parser de Silverlight 3 étant plus permissif, le converter compile et fonctionne au runtime pour les applications RIA, mais cause toujours une XamlParseException dans Expression Blend.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_thumb.png" width=391 height=326 mce_src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/LeFormatConverteretlesXamlParseException_9E49/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;La solution de contournement est simple : remplacer les accolades par des crochets dans le XAML, puis effectuer la substitution inverse dans le converter :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; Convert(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; value, &lt;SPAN style="COLOR: #2b91af"&gt;Type&lt;/SPAN&gt; targetType, &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; parameter, System.Globalization.&lt;SPAN style="COLOR: #2b91af"&gt;CultureInfo&lt;/SPAN&gt; culture)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (value == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;var&lt;/SPAN&gt; parm = parameter &lt;SPAN style="COLOR: blue"&gt;as&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(parm)) &lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Format(&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;parm.Replace(&lt;SPAN style="COLOR: #a31515"&gt;'['&lt;/SPAN&gt;,&lt;SPAN style="COLOR: #a31515"&gt;'{'&lt;/SPAN&gt;).Replace(&lt;SPAN style="COLOR: #a31515"&gt;']'&lt;/SPAN&gt;,&lt;SPAN style="COLOR: #a31515"&gt;'}'&lt;/SPAN&gt;)&lt;/SPAN&gt;, value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Ce qui donne à l’utilisation :&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;{&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; MyValue&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;,&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; Converter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;={&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;StaticResource&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; BlendableFormatConverter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;},&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt; ConverterParameter&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;=&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;'[&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-highlight: yellow" lang=EN-US&gt;0&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;0&lt;SPAN style="COLOR: blue"&gt;.&lt;/SPAN&gt;00&lt;SPAN style="COLOR: blue"&gt;]&lt;/SPAN&gt; €&lt;SPAN style="COLOR: blue"&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;Cette astuce très simple fonctionne sur les deux plateformes et permet, au grand bonheur du designer/intégrateur XAML, d’obtenir un rendu visuel interactif directement dans Expression Blend.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913420" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Intermediate" scheme="http://blogs.msdn.com/luc/archive/tags/Intermediate/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Différences de namescopes et DataContext entre WPF et Silverlight</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/26/diff-rences-de-namescopes-et-datacontext-entre-wpf-et-silverlight.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="39417" href="http://blogs.msdn.com/luc/attachment/9912982.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/26/diff-rences-de-namescopes-et-datacontext-entre-wpf-et-silverlight.aspx</id><published>2009-10-26T15:49:00Z</published><updated>2009-10-26T15:49:00Z</updated><content type="html">&lt;P&gt;Lors de l’implémentation d’un UserControl, vous aurez très souvent à databinder un objet déclaré en XAML à une ou plusieurs propriétés du UserControl lui-même. La façon la plus élégante de procéder consiste à utiliser un &lt;A title="ElementName bindings" href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.elementname.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.elementname.aspx"&gt;binding ElementName&lt;/A&gt;. &lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;UserControl&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Class&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="NameScopeExample.MyUserControl"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;… &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;x&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;="ucName"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&amp;gt; &lt;BR&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Foreground&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="White"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="{&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; MyProperty&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Description&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;,&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;ElementName&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;=ucName&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;}"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes; mso-ansi-language: en-us" lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;Ce scénario fonctionne sans accroc avec WPF mais n’est à ce jour pas supporté par Silverlight, comme la solution attachée à ce post le démontre.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/WPFandSilverlightnamescopesandDataContex_E59A/image_4.png" width=762 height=274&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Cette différence de comportement est dûe au fait que Silverlight ne supporte qu’un seul &lt;EM&gt;namescope&lt;/EM&gt;, alors que WPF permet l’utilisation de namescopes imbriqués. Cela signifie qu’un contrôle utilisateur Silverlight ne peut disposer que d’une seule valeur x:Name par instance. Dans l’exemple, deux noms différents sont donnés à une même instance: une fois dans le fichier XAML du contrôle lui-même, et une autre par le biais de MainPage.xaml.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;MainPage.xaml&lt;/U&gt; &lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;local&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;MyUserControl&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt; …&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt; &lt;SPAN style="BACKGROUND: yellow; COLOR: red; mso-highlight: yellow"&gt;x&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; COLOR: blue; mso-highlight: yellow"&gt;:&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; COLOR: red; mso-highlight: yellow"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; COLOR: blue; mso-highlight: yellow"&gt;="ucNameInMainPage"&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; MyProperty&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="{&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; MainPageProperty&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;}"/&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;MyUserControl.xaml &lt;/U&gt;&lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;UserControl&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;Class&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;="NameScopeExample.MyUserControl" &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;… &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;x&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;="ucName"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Dans Silverlight, MyUserControl ne gardera que le nom donné par le contrôle le moins imbriqué, dans notre cas celui de MainPage (ucNameInMainPage), causant ainsi une erreur de résolution de nom d’élément dans le premier binding du UserControl. La solution de contournement est assez simple: utiliser le DataContext implicite et définir via le code le DataContext de l’élément racine (souvent une Grid nommée LayoutRoot). Ceci est possible après un appel à InitializeComponent, et en modifiant le binding en supprimant la propriété ElementName.&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;void&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; MyUserControl_Loaded(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, &lt;SPAN style="COLOR: #2b91af"&gt;RoutedEventArgs&lt;/SPAN&gt; e) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;{ &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Implicit DataContexts work on both frameworks&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="COLOR: green"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;// Les DataContexts implicites fonctionnent sur les deux frameworks &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;.LayoutRoot.DataContext = &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: en-us" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;UserControl&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;Class&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="NameScopeExample.MyUserControl" &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;x&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Loaded&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="MyUserControl_Loaded"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Width&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="450"&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; Height&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="300"&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt; x&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;:&lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="ucName"&amp;gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;…&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Foreground&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="White"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;="&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;Binding&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt; MyProperty&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;.&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;Description&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang=EN-US&gt;}&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang=EN-US&gt;"/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;La solution exemple démontre également deux astuces qu’il m’arrive parfois d’utiliser :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Utiliser un &lt;A href="http://msdn.microsoft.com/fr-fr/library/9f4t9t92.aspx"&gt;lien&lt;/A&gt; afin qu’un fichier source puisse être partagé entre une application Silverlight et une application .NET (WPF dans notre cas). Dans l’exemple, MyUserControl et MyClass sont compilés indépendamment pour les deux plateformes.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Vous pouvez insérer une accolade ouvrante dans une valeur d’attribut XAML en le préfixant de la séquence d’échappement {} &lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;TextBlock&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt; Foreground&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;="LightGray"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang=EN-US&gt;="&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;{}{&lt;/SPAN&gt;Binding MyProperty,ElementName=ucName}"/&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9912982" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="Avanc&amp;#233;" scheme="http://blogs.msdn.com/luc/archive/tags/Avanc_26002300_233_3B00_/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>WPF and Silverlight namescopes and DataContext differences</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/26/WPF-and-Silverlight-namescopes-and-datacontext-differences.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="39417" href="http://blogs.msdn.com/luc/attachment/9912955.ashx" /><id>http://blogs.msdn.com/luc/archive/2009/10/26/WPF-and-Silverlight-namescopes-and-datacontext-differences.aspx</id><published>2009-10-26T14:56:00Z</published><updated>2009-10-26T14:56:00Z</updated><content type="html">&lt;p&gt;When authoring a UserControl, you will more often than not end up data binding properties of objects in your XAML file to properties of your UserControl itself. The most elegant way to do this would be without any code-behind at all, using ElementName &lt;a title="ElementName bindings" href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.elementname.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.windows.data.binding.elementname.aspx"&gt;bindings&lt;/a&gt;. &lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;UserControl&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;Class&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;NameScopeExample.MyUserControl&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;… &lt;span style="background: yellow; mso-highlight: yellow"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;Name&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;=&amp;quot;ucName&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;gt;        &lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;TextBlock&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; Foreground&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; Text&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;Binding&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; MyProperty&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;Description&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;ElementName&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;=ucName&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;}&amp;quot;/&amp;gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes; mso-ansi-language: en-us" lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p mce_keep="true"&gt;This scenario works well with WPF but is not supported by Silverlight. This is demonstrated in the attached solution, where the element name binding doesn’t return a value in the Silverlight project, but behaves as described with WPF.&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/WPFandSilverlightnamescopesandDataContex_E59A/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/luc/WindowsLiveWriter/WPFandSilverlightnamescopesandDataContex_E59A/image_thumb_1.png" width="887" height="320" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p mce_keep="true"&gt;The reason for this is that Silverlight only supports a single namescope, while WPF can handle nested namescopes for element names: meaning that a Silverlight control can only have a single x:Name. In the example, we are actually trying to give the instance of MyUserControl two distinct names, one in the UserControl’s declaration (MyUserControl.xaml) and another in the parent (MainPage.xaml).&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;u&gt;MainPage.xaml&lt;/u&gt;     &lt;br /&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;local&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;MyUserControl&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt; …&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt; &lt;span style="background: yellow; color: red; mso-highlight: yellow"&gt;x&lt;/span&gt;&lt;span style="background: yellow; color: blue; mso-highlight: yellow"&gt;:&lt;/span&gt;&lt;span style="background: yellow; color: red; mso-highlight: yellow"&gt;Name&lt;/span&gt;&lt;span style="background: yellow; color: blue; mso-highlight: yellow"&gt;=&amp;quot;ucNameInMainPage&amp;quot;&lt;/span&gt;&lt;span style="color: red"&gt; MyProperty&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;Binding&lt;/span&gt;&lt;span style="color: red"&gt; MainPageProperty&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;u&gt;MyUserControl.xaml &lt;/u&gt;    &lt;br /&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;UserControl&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;Class&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;=&amp;quot;NameScopeExample.MyUserControl&amp;quot; &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;… &lt;span style="background: yellow; mso-highlight: yellow"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;Name&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;=&amp;quot;ucName&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;With Silverlight, MyUserControl will only keep the name given by the least nested control (ucNameInMainPage), thus causing a failure in the resolution of the ElementName binding. Working around this is quite simple, and works equally well for both frameworks: make use of implicit DataContexts and set the context of the topmost element of your XAML file (usually a Grid named “LayoutRoot” in Silverlight). You can do this after the call to InitializeComponent, and modify your bindings so as to remove the ElementName property.&lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; MyUserControl_Loaded(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt; e) &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;{ &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;// Implicit DataContexts work on both frameworks &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: green; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;// Les DataContexts implicites fonctionnent sur les deux frameworks &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; background: yellow; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;.LayoutRoot.DataContext = &lt;span style="color: blue"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; margin: 0cm 0cm 10pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p style="margin: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;span style="mso-ansi-language: en-us" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt"&gt;   &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;UserControl&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;Class&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;NameScopeExample.MyUserControl&amp;quot; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;Loaded&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;MyUserControl_Loaded&amp;quot; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;450&amp;quot;&lt;/span&gt;&lt;span style="color: red"&gt; Height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style="color: red"&gt; x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;ucName&amp;quot;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; line-height: normal; margin: 0cm 0cm 0pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;…&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; text-indent: 35.4pt; margin: 0cm 0cm 10pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;TextBlock&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; Foreground&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt; Text&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;=&amp;quot;&lt;span style="background: yellow; mso-highlight: yellow"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;Binding&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt; MyProperty&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;Description&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; background: yellow; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-highlight: yellow" lang="EN-US"&gt;}&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us" lang="EN-US"&gt;&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p mce_keep="true"&gt;The sample solution attached to this post also demonstrates two tricks I sometimes use:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div mce_keep="true"&gt;Use a link (&lt;a href="http://msdn.microsoft.com/fr-fr/library/9f4t9t92.aspx"&gt;http://msdn.microsoft.com/fr-fr/library/9f4t9t92.aspx&lt;/a&gt;) so that a source file is shared between a Silverlight and a .NET application (in our case, WPF). In the example, the MyUserControl and MyClass files are compiled independently for each platform.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div mce_keep="true"&gt;You can escape an opening brace by prefixing it with the {} XAML escape sequence        &lt;br /&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;TextBlock&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt; Foreground&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;=&amp;quot;LightGray&amp;quot;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt; Text&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 8pt; mso-no-proof: yes; mso-bidi-font-size: 10.0pt; mso-ansi-language: en-us; mso-fareast-font-family: calibri; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa" lang="EN-US"&gt;=&amp;quot;&lt;span style="background: yellow; mso-highlight: yellow"&gt;{}{&lt;/span&gt;Binding MyProperty,ElementName=ucName}&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9912955" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Advanced" scheme="http://blogs.msdn.com/luc/archive/tags/Advanced/default.aspx" /><category term="WPF" scheme="http://blogs.msdn.com/luc/archive/tags/WPF/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="English" scheme="http://blogs.msdn.com/luc/archive/tags/English/default.aspx" /></entry><entry><title>ParseException AG_E_PARSER_BAD_TYPE : les points &amp;#224; v&amp;#233;rifier</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/luc/archive/2009/10/23/parseexception-ag-e-parser-bad-type-les-points-v-rifier.aspx" /><id>http://blogs.msdn.com/luc/archive/2009/10/23/parseexception-ag-e-parser-bad-type-les-points-v-rifier.aspx</id><published>2009-10-23T16:35:00Z</published><updated>2009-10-23T16:35:00Z</updated><content type="html">&lt;P&gt;Lors de&amp;nbsp;l'exécution d'une application Silverlight, il arrive parfois de rencontrer une ParseException(“AG_E_PARSER_BAD_TYPE”). Malgré sa description quelque peu crue, le message décrit bel et bien l'erreur rencontrée : un problème de type est survenu lors de la phase de parsing d'un fichier XAML.&lt;/P&gt;
&lt;P&gt;J'ai compilé ci-dessous une liste des vérifications que j'utilise pour déterminer la cause de ce type d'exception :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Si vous avez récemment renommé un fichier XAML, vérifiez que la valeur de son attribut x:Class correspond bien à sa classe code-behind associée&lt;/LI&gt;
&lt;LI&gt;Pour chaque déclaration XAML&amp;nbsp;préfixée d'un namespace, vérifiez que les déclarations xmlns correspondent bien aux assemblies définissant l'objet déclaré&lt;/LI&gt;
&lt;LI&gt;Vérifiez que votre projet référence les assemblies utilisées par vos objets déclarés dans le XAML ("Ajouter une référence..."), et que ces assemblies sont belles et biens présentes dans le fichier XAP compilé. Pour explorer le contenu d'un XAP, vous pouvez utiliser votre logiciel d'archivage préféré, ou bien changer son extension en .ZIP et l'explorer. Notez cependant que dans le cas des applications composites, une assembly peut avoir déjà été chargée par un autre module ou le shell.&lt;/LI&gt;
&lt;LI&gt;Vérifiez les valeurs des propriétés Copy local des assemblies référencées par vos projets, afin de s'assurez vous que chaque assembly est chargée par au moins un projet lors de l'exécution&lt;/LI&gt;
&lt;LI&gt;Si vous utilisez &lt;A title="WPF/Silverlight Composite Application Guidance" href="http://compositewpf.codeplex.com/" mce_href="http://compositewpf.codeplex.com/"&gt;Prism&lt;/A&gt;, faire que votre shell référence les assemblies dont vos modules dépendent peut résoudre le problème, c'est d'ailleurs une façon&amp;nbsp;populaire de résoudre le problème si vous utilisez le &lt;A title="Silverlight Toolkit" href="http://silverlight.codeplex.com/" mce_href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/A&gt;. Bien que référencer toutes&amp;nbsp;les dépendances directement depuis le shell aille à l'encontre même de la philosophie composite, référencer les assemblies de contrôles utilisateurs est en général une bonne idée.&lt;/LI&gt;
&lt;LI&gt;En dernier recours, vous pouvez utiliser l'astuce de &lt;A title="David Yack" href="http://blog.donnfelker.com/post/XamlParserException-AG_E_PARSER_BAD_TYPE.aspx" mce_href="http://blog.donnfelker.com/post/XamlParserException-AG_E_PARSER_BAD_TYPE.aspx"&gt;David Yack&lt;/A&gt; : forcer une instanciation du type récalcitrant dans le constructeur, avant même&amp;nbsp;d'appeler la méthode InitializeComponent()&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Comme vous avez pu le constater, cette exception est en général causée par un problème de résolution de type: assurez-vous donc que les assemblies référencées par&amp;nbsp;le XAML sont bien accessibles.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9912137" width="1" height="1"&gt;</content><author><name>lvovan</name><uri>http://blogs.msdn.com/members/lvovan.aspx</uri></author><category term="Interm&amp;#233;diaire" scheme="http://blogs.msdn.com/luc/archive/tags/Interm_26002300_233_3B00_diaire/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/luc/archive/tags/Silverlight/default.aspx" /><category term="Fran&amp;#231;ais" scheme="http://blogs.msdn.com/luc/archive/tags/Fran_26002300_231_3B00_ais/default.aspx" /></entry></feed>