<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Aurélien Norie</title><link>http://blogs.msdn.com/aurelien/default.aspx</link><description>Un peu de dev n'a jamais fait de mal à personne...</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Comment intégrer un contenu HTML dans une application Silverlight</title><link>http://blogs.msdn.com/aurelien/archive/2009/09/02/comment-int-grer-un-contenu-html-dans-une-application-silverlight.aspx</link><pubDate>Wed, 02 Sep 2009 15:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9890354</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9890354.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9890354</wfw:commentRss><description>&lt;P align=justify&gt;Bonjour,&lt;/P&gt;
&lt;P align=justify&gt;Le but de ce post est de montrer combien il est facile d’afficher du HTML dans une application Silverlight.&lt;/P&gt;
&lt;P align=justify&gt;Silverlight ne proposant pas par défaut de contrôle HtmlViewer ou WebBrowser, nous allons devoir ruser un peu et faire ce qu’on appelle de l’Html Overlay.&lt;/P&gt;
&lt;P align=justify&gt;L’idée est donc d’afficher un duo Div/iFrame par dessus l’application Silverlight, à l’endroit souhaité. l’iFrame se chargera d’afficher le contenu HTML souhaité. &lt;BR&gt;Notez qu’afin que cela soit possible, il faut mettre la propriété &lt;STRONG&gt;Windowless&lt;/STRONG&gt; de l’application Silverlight à &lt;STRONG&gt;True&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Nous allons donc créer un contrôle dans notre application Silverlight qui se chargera de créer et de positionner le div et l’iFrame sur l’application.&lt;/P&gt;
&lt;P&gt;Le résultat obtenu est le suivant :&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/CommentintgreruncontenuHTMLdansuneapplic_C2DC/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/CommentintgreruncontenuHTMLdansuneapplic_C2DC/image_2.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/aurelien/WindowsLiveWriter/CommentintgreruncontenuHTMLdansuneapplic_C2DC/image_thumb.png" width=496 height=488 mce_src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/CommentintgreruncontenuHTMLdansuneapplic_C2DC/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;La page entière est une application Silverlight, qui semble nous afficher directement le contenu d’une page Web.&lt;/P&gt;
&lt;P&gt;Pour arriver à ce résultat, voici les étapes à suivre :&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Créez un projet Silverlight 3, et prendre l’option où Visual Studio génère le site Web associé. &lt;/LI&gt;
&lt;LI&gt;Dans la page ASP.NET hébergeant l’application Silverlight, ajoutez l’attribut &lt;STRONG&gt;Windowless&lt;/STRONG&gt; sur l’objet Silverlight et donnez lui la valeur &lt;STRONG&gt;True&lt;/STRONG&gt;. &lt;/LI&gt;
&lt;LI&gt;Ajoutez une classe &lt;STRONG&gt;HtmlDisplay&lt;/STRONG&gt; au projet Silverlight. Cette classe héritera de &lt;STRONG&gt;UserControl&lt;/STRONG&gt; et pourra donc se placer directement dans le XAML de votre application Silverlight. &lt;BR&gt;Cet objet se chargera de créer les objets HTML div et iFrame, de les positionner&amp;nbsp; correctement sur la page, ainsi que de la navigation de l’iFrame. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;HtmlDisplay&lt;/SPAN&gt; : &lt;SPAN style="COLOR: #2b91af"&gt;ContentControl &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;{ &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;HtmlElement&lt;/SPAN&gt; div; &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;HtmlElement&lt;/SPAN&gt; iFrame; &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; HtmlDisplay() &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Loaded += &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;RoutedEventHandler&lt;/SPAN&gt;(HtmlDisplay_Loaded); &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;}&amp;nbsp; 
&lt;P mce_keep="true"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp; void&lt;/SPAN&gt; HtmlDisplay_Loaded(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, &lt;SPAN style="COLOR: #2b91af"&gt;RoutedEventArgs&lt;/SPAN&gt; e) &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;HtmlDocument&lt;/SPAN&gt; htmlDocument = &lt;SPAN style="COLOR: #2b91af"&gt;HtmlPage&lt;/SPAN&gt;.Document;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;div = htmlDocument.CreateElement(&lt;SPAN style="COLOR: #a31515"&gt;"div"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.Id = &lt;SPAN style="COLOR: #a31515"&gt;"monDiv"&lt;/SPAN&gt;; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"position"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"absolute"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"height"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Height.ToString() + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"width"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Width.ToString() + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: #2b91af"&gt;GeneralTransform&lt;/SPAN&gt; gt = &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.TransformToVisual(&lt;SPAN style="COLOR: #2b91af"&gt;Application&lt;/SPAN&gt;.Current.RootVisual); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Point&lt;/SPAN&gt; position = gt.Transform(&lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;Point&lt;/SPAN&gt;(0, 0)); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"left"&lt;/SPAN&gt;, position.X + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;div.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"top"&lt;/SPAN&gt;, position.Y + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame = htmlDocument.CreateElement(&lt;SPAN style="COLOR: #a31515"&gt;"iframe"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.Id = &lt;SPAN style="COLOR: #a31515"&gt;"monIFrame"&lt;/SPAN&gt;; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.SetProperty(&lt;SPAN style="COLOR: #a31515"&gt;"frameborder"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"no"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"height"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Height.ToString() + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"width"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Width.ToString() + &lt;SPAN style="COLOR: #a31515"&gt;"px"&lt;/SPAN&gt;); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.SetStyleAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"position"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"relative"&lt;/SPAN&gt;); &lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; div.AppendChild(iFrame); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;htmlDocument.Body.AppendChild(div); &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;} &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; Naviguer(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; url) &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (iFrame != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;iFrame.SetAttribute(&lt;SPAN style="COLOR: #a31515"&gt;"src"&lt;/SPAN&gt;, url); &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;} &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;} &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;}&lt;/SPAN&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN-BOTTOM: 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;BR&gt;
&lt;LI&gt;Dans le XAML de la page Silverlight, ajoutez une référence à l’assembly de votre projet, et vous pourrez ensuite placer l’objet HtmlDisplay ainsi qu’une textbox et un bouton pour permettre de naviguer sur différentes pages. &lt;BR&gt;&lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa" lang=EN-US&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; 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: 10pt; mso-ansi-language: en-us; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa" lang=EN-US&gt;my&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa" lang=EN-US&gt;="clr-namespace:SilverlightApplication1"&lt;/SPAN&gt; &lt;BR&gt;&lt;BR&gt;puis par exemple : &lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="LayoutRoot"&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Canvas.Background&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;LinearGradientBrush&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;GradientStop&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Color&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="#FFD4D4D4"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Offset&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="0"/&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;GradientStop&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Color&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="#FF3B3B3B"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Offset&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="1"/&amp;gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;LinearGradientBrush&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Canvas.Background&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;gt; &lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;StackPanel&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; &lt;SPAN style="COLOR: red"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Orientation&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Horizontal"&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;TextBox&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="Adresse"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Text&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="http://www.bing.com" &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Margin&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="10"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Width&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="400" /&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Button&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="Naviguer"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Content&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="Go"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Margin&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="10" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Click&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="Naviguer_Click"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;/&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;StackPanel&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;gt; &lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;my&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;HtmlDisplay&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; x&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="html"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt; Canvas.Top&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="50" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;Canvas.Left&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang=EN-US&gt;="10" &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;="700" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: red"&gt;Width&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="800" /&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;gt; &lt;BR&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Dans le code C# de votre application Silverlight, ajoutez le code pour permettre la navigation : &lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; Naviguer_Click(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, &lt;SPAN style="COLOR: #2b91af"&gt;RoutedEventArgs&lt;/SPAN&gt; e) &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;{ &lt;BR&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;html.Naviguer(Adresse.Text.Trim()); &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;} &lt;BR&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Vous trouverez les sources complètes de cet exemple &lt;A href="http://norel.members.winisp.net/DisplayHTMLinSilverlight.zip" target=_blank mce_href="http://norel.members.winisp.net/DisplayHTMLinSilverlight.zip"&gt;ici&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;A bientôt. &lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9890354" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Modifications entre Silverlight 3 Beta et la version finale</title><link>http://blogs.msdn.com/aurelien/archive/2009/07/16/modifications-entre-silverlight-3-beta-et-la-version-finale.aspx</link><pubDate>Thu, 16 Jul 2009 14:21:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9835495</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9835495.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9835495</wfw:commentRss><description>&lt;p&gt;Bonjour,&lt;/p&gt;  &lt;p&gt;Comme vous le savez sûrement déjà, Silverlight 3 est désormais RTW depuis la semaine dernière.&lt;/p&gt;  &lt;p&gt;Tous les liens pour installer les outils Visual Studio, le runtime, Blend 3, Silverlight Toolkit et “.NET RIA Services July 2009 Preview” sont recensés &lt;a href="http://silverlight.net/GetStarted/" target="_blank"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Une liste exhaustive de toutes les nouveautés (il y en a un paquet !) est disponible &lt;a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Si vous avez déjà commencé vos développements sur Silverlight 3 Beta, il se peut que certaines fonctionnalités soient cassées, à cause des “Breaking changes” entre la version Beta et la version finale de Silverlight 3.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Par exemple pour installer une application Silverlight sur la machine, il fallait faire en Silverlight 3 Beta :&lt;/p&gt;  &lt;p&gt;Application.Current.Detach();&lt;/p&gt;  &lt;p&gt;alors qu’en version finale, il faut faire :&lt;/p&gt;  &lt;p&gt;Application.Current.Install();&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La liste de tous ces “Breaking Changes” est disponible dans le document &lt;strong&gt;Changes.docx&lt;/strong&gt; qui se trouve dans le SDK Silverlight :&lt;/p&gt;  &lt;p&gt;C:\Program Files\Microsoft SDKs\Silverlight\v3.0\SDK Help\en-US\Changes.docx&lt;/p&gt;  &lt;p&gt;Vous pourrez donc facilement migrer votre code en vous référant à ce document.&lt;/p&gt;  &lt;p&gt;A bientôt,   &lt;br /&gt;Aurélien&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9835495" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Silverlight 3 Beta est disponible</title><link>http://blogs.msdn.com/aurelien/archive/2009/03/19/silverlight-3-beta-est-disponible.aspx</link><pubDate>Thu, 19 Mar 2009 11:58:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9489489</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9489489.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9489489</wfw:commentRss><description>&lt;p&gt;Bonjour,&lt;/p&gt;  &lt;p align="justify"&gt;Depuis cette nuit, &lt;strong&gt;Silverlight 3 Beta&lt;/strong&gt; est disponible en téléchargement !&lt;/p&gt;  &lt;p align="justify"&gt;Il s’agit d’une beta destinée aux développeurs afin qu’ils testent le nouvelles fonctionnalités.   &lt;br /&gt;Ce n’est donc pas une licence “go-live’.    &lt;br /&gt;Notez qu’il n’est pas possible d’avoir un environnement de développement avec Silverlight 2 et Silverlight 3 Beta installés ensemble. Privilégiez donc une VM pour cette nouvelle installation afin de garder votre environnement de développement Silverlight 2 pour vos développements en cours et la maintenance de vos applications en production.&lt;/p&gt;  &lt;p align="justify"&gt;Vous trouverez toutes les informations nécessaires pour installer le Runtime et le SDK, ainsi que les Outils Silverlight 3 Beta pour Visual Studio 2008, mais aussi Blend 3 Preview sur &lt;a title="http://silverlight.net/GetStarted/silverlight3/default.aspx" href="http://silverlight.net/GetStarted/silverlight3/default.aspx"&gt;http://silverlight.net/GetStarted/silverlight3/default.aspx&lt;/a&gt;.    &lt;br /&gt;Vous y trouverez aussi des exemples de code et une liste des nouvelles fonctionnalités.&lt;/p&gt;  &lt;p align="justify"&gt;Alors amusez-vous bien avec Silverlight 3 !!&lt;/p&gt;  &lt;p align="justify"&gt;A bientôt,   &lt;br /&gt;Aurélien&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9489489" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Comment mettre de la transparence sur un menu contextuel Windows Forms</title><link>http://blogs.msdn.com/aurelien/archive/2009/03/18/comment-mettre-de-la-transparence-sur-un-menu-contextuel-windows-forms.aspx</link><pubDate>Wed, 18 Mar 2009 17:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9487013</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9487013.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9487013</wfw:commentRss><description>&lt;P align=justify&gt;Bonjour,&lt;/P&gt;
&lt;P align=justify&gt;Vous&amp;nbsp; avez créé une application qui se minimise dans le systray (à côté de l’horloge de Windows) et vous ajoutez à cette application un &lt;STRONG&gt;ContextMenuStrip&lt;/STRONG&gt; afin d’afficher un menu contextuel.&lt;/P&gt;
&lt;P align=justify&gt;Vous vous dites que ce serait bien de pouvoir rendre ce menu un peu plus attirant en y ajoutant de la transparence par exemple (c’est à la mode et ça plait bien :o)).&lt;/P&gt;
&lt;P align=justify&gt;Dans la fenêtre des propriétés du contrôle ContextMenuStrip, aucune propriété ne laisse sous-entendre que cela est possible. &lt;BR&gt;Toutefois, en creusant un peu sur la MSDN, vous apercevez que la propriété &lt;STRONG&gt;Opacity&lt;/STRONG&gt; existe bel et bien sur le contrôle ContextMenuStrip. &lt;BR&gt;Vous vous empressez alors de la modifier, mais à votre grand désespoir, vous vous rendez compte que si votre menu contextuel contient des sous-menus, alors les sous-menus ne sont pas transparents :&lt;/P&gt;
&lt;P align=justify&gt;&lt;A href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_thumb_1.png" width=215 height=117 mce_src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=justify&gt;Il faut donc le faire avec du code natif en appelant directement l’API système &lt;STRONG&gt;SetLayeredWindowAttributes&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Voici un exemple de code qui parcourt le menu et met de la transparence sur tous les sous-menus :&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;[&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DllImport&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"user32.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SetLayeredWindowAttributes(&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;&amp;nbsp; IntPtr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; hwnd, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;uint&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; crKey, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;byte&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; bAlpha, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;uint&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dwFlags);&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;[&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DllImport&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"user32.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, SetLastError = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SetWindowLong(&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;IntPtr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; hWnd, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; nIndex, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dwNewLong);&lt;BR&gt;&lt;BR&gt;[&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DllImport&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"user32.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, SetLastError = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GetWindowLong(&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;IntPtr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; hWnd, &lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; nIndex);&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;const&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GWL_EXSTYLE = -20;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;const&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; WS_EX_LAYERED = 0x80000;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;const&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; LWA_ALPHA = 0x2;&lt;BR&gt;&lt;FONT color=#0000ff&gt;double&lt;/FONT&gt;&lt;FONT size=2&gt; alpha = 0.7;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Form1()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; InitializeComponent();&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Form1_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;EventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; contextMenuStrip1.Opacity = alpha;&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;ToolStripMenuItem&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; subMenuItem &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; contextMenuStrip1.Items)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setSubMenuTransparency(subMenuItem);&lt;BR&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; setSubMenuTransparency(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;ToolStripMenuItem&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; subMenuItem)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (subMenuItem.HasDropDownItems)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;ToolStripItem&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; tsi = subMenuItem.DropDownItems[0];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetWindowLong(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tsi.Owner.Handle,&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GWL_EXSTYLE,&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetWindowLong(tsi.Owner.Handle, GWL_EXSTYLE) ^ WS_EX_LAYERED);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetLayeredWindowAttributes(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tsi.Owner.Handle,&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;byte&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)(alpha * 255),&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWA_ALPHA);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;ToolStripMenuItem&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; smi &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; subMenuItem.DropDownItems)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setSubMenuTransparency(smi);&lt;BR&gt;}&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Et voilà le résultat obtenu :&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_thumb_3.png" width=224 height=122 mce_src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmettredelatransparencesurunmenuco_D885/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;A bientôt, &lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9487013" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Windows+Form/default.aspx">Windows Form</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/Transparence/default.aspx">Transparence</category></item><item><title>Comment installer le SP2 du Framework 2.0 (suite et probablement fin…)</title><link>http://blogs.msdn.com/aurelien/archive/2009/03/02/comment-installer-le-sp2-du-framework-2-0-suite-et-probablement-fin.aspx</link><pubDate>Mon, 02 Mar 2009 18:54:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9454627</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9454627.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9454627</wfw:commentRss><description>&lt;p&gt;Bonjour,&lt;/p&gt;  &lt;p&gt;Les choses ont encore évolué depuis mon dernier post puisque le package d’installation standalone est maintenant disponible &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5b2c0358-915b-4eb5-9b1d-10e506da9d0f&amp;amp;displaylang=en" target="_blank"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Il n’est donc plus nécessaire d’installer les “bootstrappers” sur une machine où Visual Studio est installée !&lt;/p&gt;  &lt;p&gt;A bientôt,   &lt;br /&gt;Aurélien&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9454627" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Comment installer le SP2 du Framework .NET 2.0</title><link>http://blogs.msdn.com/aurelien/archive/2009/01/07/comment-installer-le-sp2-du-framework-net-2-0.aspx</link><pubDate>Wed, 07 Jan 2009 13:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9287153</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9287153.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9287153</wfw:commentRss><description>&lt;p&gt;Bonjour,&lt;/p&gt;  &lt;p&gt;Dans un article précédent intitulé “&lt;a href="http://blogs.msdn.com/aurelien/archive/2008/09/23/le-multi-targeting-de-visual-studio-et-les-services-packs.aspx" target="_blank" mce_href="http://blogs.msdn.com/aurelien/archive/2008/09/23/le-multi-targeting-de-visual-studio-et-les-services-packs.aspx"&gt;Le multi-targeting de Visual Studio et les Services Packs&lt;/a&gt;” je vous parlais de &lt;strong&gt;l’impossibilité d’installer seul le Service Pack 2 du Framework .NET 2.0&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Les choses ont évolué depuis et il devient possible d’installer ce Service Pack (et c’est le cas aussi pour le Service Pack 2 du Framework 3.0), grâce aux “&lt;strong&gt;.NET Frameworks 2.0 SP2 and 3.0 SP2 bootstrapper packages” &lt;/strong&gt;téléchargeables &lt;a href="http://msdn.microsoft.com/en-us/vs2008/bb898654.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/vs2008/bb898654.aspx"&gt;ici&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Ces packages s’installeront sur les OS 32 et 64 bits, avant Windows Vista et les OS suivants pour lesquels l’installation du Framework 3.5 SP1 doit être privilégiée (d’ailleurs ces packages ne s’installeront pas sur ces OS).&lt;/p&gt;  &lt;p&gt;Afin d’installer le Framework 2.0 SP2 sur un serveur Windows 2000 par exemple, la démarche est donc la suivante : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Sur une machine de développement où Visual Studio 2008 est installé:      &lt;ul&gt;       &lt;li&gt;Télécharger les&lt;strong&gt; &lt;/strong&gt;“.NET Frameworks 2.0 SP2 and 3.0 SP2 bootstrapper packages” &lt;/li&gt;        &lt;li&gt;Executer le package afin d’extraire les “bootstrapper”&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Sur le serveur Windows 2000 (à jour au niveau des Services Packs bien évidemment, soit Service Pack 4) :      &lt;ul&gt;       &lt;li&gt;Installer le Rollup package &lt;a href="http://support.microsoft.com/?id=891861" target="_blank" mce_href="http://support.microsoft.com/?id=891861"&gt;KB891861&lt;/a&gt; pour Windows 2000 SP4, qui contient un hotfix de sécurité sans lequel l’installation du Framework .NET 2.0 SP2 échouera. &lt;/li&gt;        &lt;li&gt;S’assurer que &lt;strong&gt;Windows Installer 3.1&lt;/strong&gt; est installé, sinon l’installer à partir d’&lt;a href="http://support.microsoft.com/kb/893803" target="_blank" mce_href="http://support.microsoft.com/kb/893803"&gt;ici&lt;/a&gt; par exemple. &lt;/li&gt;        &lt;li&gt;S’assurer que le &lt;strong&gt;Service Pack 1 du Framework .NET 2.0&lt;/strong&gt; est installé, sinon l’installer à partir d’&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&amp;amp;displaylang=en" target="_blank" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&amp;amp;displaylang=en"&gt;ici&lt;/a&gt;. &lt;/li&gt;        &lt;li&gt;Installer le &lt;strong&gt;Service Pack 2 du Framework .NET 2.0 &lt;/strong&gt;qui se situe sur la machine de développement, à cet emplacement : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx20SP2&lt;strong&gt;.&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A bientôt,    &lt;br /&gt;Aurélien&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9287153" width="1" height="1"&gt;</description></item><item><title>Comment modifier dynamiquement la taille d’une application Silverlight</title><link>http://blogs.msdn.com/aurelien/archive/2008/12/23/comment-modifier-dynamiquement-la-taille-d-une-application-silverlight.aspx</link><pubDate>Tue, 23 Dec 2008 17:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9250143</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9250143.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9250143</wfw:commentRss><description>&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;Imaginons le scénario suivant :&amp;nbsp;vous intégrez une application Silverlight dans un site web existant.&lt;BR&gt;Pour cela, vous positionnez votre application Silverlight&amp;nbsp;au sein d'une page web, vous indiquez la largeur et la&amp;nbsp;hauteur de l'application.&lt;/P&gt;
&lt;P&gt;Dans cette application Silverlight,&amp;nbsp;vous ajoutez dynamiquement des contrôles, et vous vous rendez compte que les derniers contrôles ajoutés n'aparaissent pas dans votre application car elle n'est pas assez grande pour les afficher.&lt;/P&gt;
&lt;P&gt;Le but du jeu est donc de modifier la taille du plugin Silverlight dynamiquement afin que tous les contrôles ajoutés soient visibles.&lt;/P&gt;
&lt;P&gt;Prenons par exemple un &lt;STRONG&gt;StackPanel&lt;/STRONG&gt; contenant un bouton, et ajoutons d'autres boutons à ce StackPanel dynamiquement lorsque l'on clique sur ce premier bouton.&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Canvas&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; x&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="LayoutRoot" &amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;StackPanel&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; x&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="sp"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; Click&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Button_Click"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; Content&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Ajouter un controle"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; x&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="btn"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt; Height&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="50" /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;StackPanel&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Canvas&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Button_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;RoutedEventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;FONT size=2&gt;btnDyn &lt;/FONT&gt;= &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDyn.Content = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DateTime&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Now.ToLongTimeString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDyn.Height = 50;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sp.Children.Add(btnDyn);&lt;BR&gt;}&lt;/P&gt;
&lt;P mce_keep="true"&gt;La capture d'écran ci-dessous montre que ma pile de boutons est coupée car l'application Silverlight n'adapte pas sa taille automatiquement.&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/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/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_thumb.png" width=401 height=406 mce_src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Dans cet exemple, j'ai positionné une taille fixe pour mon application, toutefois spécifier une hauteur de 100% ne résoudrait pas le problème car l'application prendrait la hauteur de la fenêtre, mais ne s'agrandirait pas toute seule lors de l'ajout des contrôles supplémentaires.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Ce que je souhaite, c'est que mon application Silverlight me permette de voir tous les contrôles, en m'affichant une barre de défilement sur le navigateur si besoin.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Je vais pouvoir dans le code managé modifier la taille du plugin Silverlight.&lt;BR&gt;Pour cela, je calcule la taille de mon application a l'aide de la propriété &lt;STRONG&gt;ActualHeight&lt;/STRONG&gt; de mon contrôle StackPanel que j'affecte ensuite de la manière suivante :&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; UpdatePluginHeight()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;double&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; height = sp.ActualHeight;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;HtmlElement&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; plugin = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;HtmlPage&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Plugin;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;HtmlElement&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; host = plugin.Parent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; plugin.SetStyleAttribute(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"height"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, height.ToString() + &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"px"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; host.SetStyleAttribute(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"height"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, height.ToString() + &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"px"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;Notez le&amp;nbsp;&lt;FONT color=#a31515&gt;"px" &lt;/FONT&gt;&lt;FONT color=#000000&gt;qui est indispensable pour le bon fonctionnement de la fonctionnalité sous FireFox.&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Bien évidemment, j'appelle cette méthode après avoir ajouté un contrôle dynamiquement, ce qui nous donne au final pour le gestionnaire d'événements de mon premier bouton :&lt;/P&gt;
&lt;P mce_keep="true"&gt;private&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Button_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;RoutedEventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;FONT size=2&gt;btnDyn &lt;/FONT&gt;= &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDyn.Content = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DateTime&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Now.ToLongTimeString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnDyn.Height = 50;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sp.Children.Add(btnDyn);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UpdatePluginHeight();&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Le résultat est le suivant, mon application Silverlight m'affiche tous les contrôles présents dans le StackPanel, même si sa hauteur est supérieure à la hauteur de la fenêtre (j'ai dans ce cas la barre de défilement verticale du navigateur qui me permet de voir le reste de l'application)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/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/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_thumb_1.png" width=400 height=405 mce_src="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/Commentmodifierdynamiquementlatailledune_DE8B/image_thumb_1.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A bientôt,&lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9250143" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Processeurs physiques, logiques et nombre de cœurs</title><link>http://blogs.msdn.com/aurelien/archive/2008/11/24/processeurs-physiques-logiques-et-nombre-de-c-urs.aspx</link><pubDate>Mon, 24 Nov 2008 18:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9137527</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9137527.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9137527</wfw:commentRss><description>&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;Historiquement, les ordinateurs étaient équipés d'un seul processeur, puis la notion de processeurs logiques est apparue avec ce qu'on appelait à l'époque l'hyper-threading (ou les processeurs multi-threadés), et nous voyons maintenant des ordinateurs équipés de deux cœurs, quatre cœurs&amp;nbsp;et bien plus.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Le but de ce rapide post est de vous présenter une méthode simplissime pour déterminer le nombre de processeurs physiques d’une machine, mais aussi le nombre de cœurs et le nombre de processeurs logiques.&lt;/P&gt;
&lt;P&gt;Tout cela peut se faire via WMI sur Windows Vista et versions supérieures (mais aussi sur Windows 2003 avec le hotfix suivant installé : &lt;A title=http://support.microsoft.com/kb/932370/en-us href="http://support.microsoft.com/kb/932370/en-us" mce_href="http://support.microsoft.com/kb/932370/en-us"&gt;http://support.microsoft.com/kb/932370/en-us&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Le code vbscript suivant montre comment faire, notez que pour savoir si un processeur est hyper-threadé, il suffit de comparer le nombre de&amp;nbsp;processeurs logiques et le nombre de cœurs : &lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;strComputer = &lt;SPAN style="COLOR: #a31515"&gt;"."&lt;/SPAN&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;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;Set&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt; objWMIService = GetObject(&lt;SPAN style="COLOR: #a31515"&gt;"winmgmts:\\"&lt;/SPAN&gt; &amp;amp; strComputer &amp;amp; &lt;SPAN style="COLOR: #a31515"&gt;"\root\CIMV2"&lt;/SPAN&gt;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;Set&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt; colItems = objWMIService.ExecQuery(&lt;SPAN style="COLOR: #a31515"&gt;"SELECT * FROM Win32_Processor"&lt;/SPAN&gt;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;WScript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Nombre de processeurs physiques : "&lt;/SPAN&gt; &amp;amp; colItems.Count&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;For&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt; &lt;SPAN style="COLOR: blue"&gt;Each&lt;/SPAN&gt; objItem &lt;SPAN style="COLOR: blue"&gt;in&lt;/SPAN&gt; colItems &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Wscript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Processeur : "&lt;/SPAN&gt; &amp;amp; objItem.Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Wscript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Nombre de processeurs logiques : "&lt;/SPAN&gt; &amp;amp; objItem.NumberOfLogicalProcessors&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Wscript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Nombre de coeurs : "&lt;/SPAN&gt; &amp;amp; objItem.NumberOfCores&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; objItem.NumberOfCores &amp;lt; objItem.NumberOfLogicalProcessors &lt;SPAN style="COLOR: blue"&gt;then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WScript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Ce processeur est hyper-threadé"&lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;WScript.Echo &lt;SPAN style="COLOR: #a31515"&gt;"Ce processeur n'est pas hyper-threadé"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;end&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;if&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Next&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;A bientôt&lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9137527" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Processeur/default.aspx">Processeur</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/WMI/default.aspx">WMI</category></item><item><title>Comment ajouter du contenu à un calendrier Silverlight</title><link>http://blogs.msdn.com/aurelien/archive/2008/11/03/comment-ajouter-du-contenu-un-calendar-silverlight.aspx</link><pubDate>Mon, 03 Nov 2008 11:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9031959</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/9031959.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=9031959</wfw:commentRss><description>&lt;p&gt;Bonjour,&lt;/p&gt;  &lt;p&gt;Depuis quelques temps je cherchais à &lt;strong&gt;enrichir le contrôle Calendar de Silverlight&lt;/strong&gt; afin de pouvoir afficher des données à partir d’une base.&lt;/p&gt;  &lt;p&gt;Par défaut, ce contrôle ne sert qu'à proposer à un utilisateur de choisir une date sur un calendrier, il ne permet pas de parcourir la collection des jours du calendrier au runtime afin d'en modifier le contenu.&lt;/p&gt;  &lt;p&gt;Partons sur un exemple concret : j'ai en mémoire un ensemble de rendez-vous (ici il s'agit d'objets créés en mémoire, dans un scénario réel on irait chercher ces données dans une base à l'aide d'un service), et je souhaite &lt;strong&gt;afficher un bouton pour chaque rendez-vous dans le calendrier&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Voici comment faire pour arriver à nos fins.&lt;/p&gt;  &lt;p&gt;Pour commencer à définir l'aspect du contrôle &lt;strong&gt;Calendar&lt;/strong&gt;, la première chose à faire est d'&lt;strong&gt;éditer le template &lt;/strong&gt;du Calendar (à l'aide d'Expression Blend par exemple), puis de modifier le XAML pour changer le template du Calendar.&lt;/p&gt;  &lt;p&gt;Notez que les espaces de noms suivants doivent être importés :    &lt;br /&gt;&lt;font size="2"&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;System_Windows_Controls_Primitives&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;=&amp;quot;clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls&amp;quot;          &lt;br /&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;font color="#ff0000"&gt;basics&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Dans l'exemple suivant, j'ai modifié la couleur de fond afin de lui donner une couleur unie car la modification de la hauteur des cellules du calendrier au runtime ne me permettait pas de garder la couleur de fond prédéfinie par le contrôle (je vous laisse faire l’essai). J’ai laissé les autres valeurs par défaut…&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Style&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Key&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;CalendarStyle1&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; TargetType&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;basics:Calendar&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;IsTabStop&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;False&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Background&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FFFFFFFF&amp;quot; /&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;BorderBrush&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; EndPoint&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.5,1&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; StartPoint&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.5,0&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FFA3AEB9&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FF8399A9&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.375&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FF718597&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.375&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FF617584&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;BorderThickness&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Template&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;ControlTemplate&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; TargetType&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;basics:Calendar&amp;quot;&amp;gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Center&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Name&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Root&amp;quot;&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;System_Windows_Controls_Primitives&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;CalendarItem      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; Background&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;BorderBrush&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; BorderBrush&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &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;CalendarItem&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;ControlTemplate&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;Style&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;/p&gt;  &lt;p&gt;Jusqu'ici je n'ai fait que modifier la couleur de fond du calendrier, toutefois libre à vous de modifier le template du Calendar à votre guise.&lt;/p&gt;  &lt;p&gt;Ce qui m'intéresse plus particulièrement ici, c'est de modifier l'objet &lt;strong&gt;CalendarDayButton&lt;/strong&gt; afin d'y redéfinir le &lt;strong&gt;Template&lt;/strong&gt; qui affichera le contenu de chaque jour (de type CalendarDayButton).     &lt;br /&gt;Voici comment je l'ai implémenté :&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Style&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; x&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Key&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;CalendarDayButtonStyle&amp;quot;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;System_Windows_Controls_Primitives:CalendarDayButton&amp;quot;&amp;gt;        &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Width&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;80&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Property&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Template&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;ControlTemplate&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &lt;br /&gt;TargetType&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;System_Windows_Controls_Primitives:CalendarDayButton&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Border&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; BorderBrush&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FF598788&amp;quot;        &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;strong&gt;&lt;span style="color: red"&gt;BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;1,1,1,1&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;strong&gt;&lt;span style="color: red"&gt;CornerRadius&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;2,2,2,2&amp;quot;&amp;gt;          &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Border.Background&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;        &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EndPoint&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.5,1&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; &lt;br /&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;StartPoint&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0.5,0&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FFD3DEE8&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;GradientStop&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Color&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;#FFFFFFFF&amp;quot;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; Offset&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Border.Background&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: red; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; HorizontalAlignment&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;=&amp;quot;Center&amp;quot;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;System_Windows_Controls_Primitives&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;CalendarDayButton      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Loaded&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;CalendarDayButton_Loaded&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; Background&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BorderBrush&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; BorderBrush&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;Content&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; Content&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: red"&gt;BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color: #a31515"&gt;TemplateBinding&lt;/span&gt;&lt;span style="color: red"&gt; BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;}&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&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;CalendarDayButton&amp;quot;/&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&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: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;StackPanel&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;Border&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;gt; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&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: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;ControlTemplate&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;Setter.Value&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-no-proof: yes"&gt;Setter&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: #a31515; font-size: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;Style&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: fr; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;La première modification faite ici, c'est le changement de la propriété &lt;strong&gt;Width&lt;/strong&gt; de l'objet &lt;strong&gt;CalendarDayButton&lt;/strong&gt;.&amp;#160; &lt;br /&gt;Le fait de modifier la largeur de chaque bouton me permet notamment de modifier la largeur globale du calendrier (vous aviez peut-être déjà remarqué que le fait de changer la propriété Width du Calendar lui-même ne fait rien ??).&lt;/p&gt;  &lt;p&gt;Notez qu’après avoir modifié cette propriété, si vous passez l’affichage du calendrier en mode &lt;strong&gt;Month&lt;/strong&gt; ou &lt;strong&gt;Decade&lt;/strong&gt;, le calendrier retrouvera sa largeur d’origine. Pour éviter cela, vous pouvez modifier le style de l’objet &lt;strong&gt;CalendarButton &lt;/strong&gt;pour changer la largeur des boutons.     &lt;br /&gt;Afin que la largeur globale du calendrier ne change pas, définissez la largeur d’un CalendarButton égale à : &lt;strong&gt;7 x LargeurDuCalendarDayButton / 4&lt;/strong&gt;, car en mode Month ou Decade, il n’y a que quatre boutons dans la largeur du calendrier (voir dans le code source de l’exemple téléchargeable en fin de ce post).&lt;/p&gt;  &lt;p&gt;La modification principale, qui me permettra d'ajouter du contenu au contrôle se fait sur la définition du &lt;strong&gt;Template&lt;/strong&gt; de l'objet &lt;strong&gt;CalendarDayButton&lt;/strong&gt;.     &lt;br /&gt;Notez que j'ai modifié ce template afin d'y ajouter une bordure (objet &lt;strong&gt;Border&lt;/strong&gt; sur lequel j'ai ajouté un dégradé en couleur de fond, ainsi que des angles arrondis), ainsi qu'un objet &lt;strong&gt;StackPanel&lt;/strong&gt; à l'intérieur de cette bordure. &lt;strong&gt;Ce StackPanel me permettra d'empiler des objets sous le CalendarDayButton existant&lt;/strong&gt;, qui se charge d'afficher le jour dans le calendrier.&lt;/p&gt;  &lt;p&gt;La dernière modification à ce template est la suivante : je m'abonne à l'événement &lt;strong&gt;Loaded&lt;/strong&gt; de l'objet CalendarDayButton.     &lt;br /&gt;Cet événement va être levé une fois par CalendarDayButton (soit 42 fois au total car le calendrier affiche 42 jours), et ne sera plus levé par la suite, même lorsque l'on change de mois.     &lt;br /&gt;L'idée est donc de stocker les références des 42 CalendarDayButton en mémoire, afin de pouvoir les manipuler par la suite.     &lt;br /&gt;&lt;/p&gt;  &lt;p style="margin: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;     &lt;br /&gt;private&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt; &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;CalendarDayButton&lt;/span&gt;&amp;gt; CalendarButtons;&lt;/span&gt;     &lt;br /&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: green; font-size: 10pt; mso-no-proof: yes"&gt;             &lt;br /&gt;//Création de la liste des CalendarDayButton&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: blue"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt; CalendarDayButton_Loaded(&lt;/font&gt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&lt;font color="#000000"&gt; sender, &lt;/font&gt;&lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt;&lt;font color="#000000"&gt; e)&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;font color="#000000"&gt;{&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160; CalendarDayButton&lt;/span&gt;&lt;font color="#000000"&gt; cdb = sender &lt;/font&gt;&lt;span style="color: blue"&gt;as&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: #2b91af"&gt;CalendarDayButton&lt;/span&gt;&lt;font color="#000000"&gt;;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160; CalendarButtons.Add(cdb); &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&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="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: green"&gt;&amp;#160; //Le calendrier comporte 42 jours&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: green"&gt;&amp;#160; //après que le dernier jour soit chargé, on remplit              &lt;br /&gt;&amp;#160; //le calendrier avec les données               &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; if&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;font color="#000000"&gt; (CalendarButtons.Count == 42)&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; RemplirCalendrier(              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;&lt;font color="#000000"&gt;(Calendar1.DisplayDate.Year,              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Calendar1.DisplayDate.Month, 1));&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;        &lt;p mce_keep="true"&gt;&lt;font color="#000000" face="Courier New"&gt;&lt;font face="Arial"&gt;Une fois les contrôles CalendarDayButton stockés, nous allons pouvoir les manipuler pour afficher du contenu dedans.              &lt;br /&gt;Lors du chargement du dernier jour, on appelle la méthode &lt;strong&gt;RemplirCalendrier&lt;/strong&gt; (définie plus loin dans cet article) en lui passant le premier jour du mois courant en paramètre afin d'afficher les rendez-vous du mois courant.               &lt;br /&gt;              &lt;br /&gt;Avant toute autre chose, nous allons charger des données.               &lt;br /&gt;Pour cela, définissons une classe RDV :&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;font color="#000000"&gt;         &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt; date { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; intitule { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" 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="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;          &lt;p mce_keep="true"&gt;&lt;/p&gt;         &lt;font color="#000000"&gt;Puis dans l'événement &lt;strong&gt;Loaded&lt;/strong&gt; du contrôle Silverlight, on crée une liste de RDV, et on définit quelques paramètres du calendrier (afin que la semaine commence un lundi par exemple) :&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000"&gt; &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;             &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;               &lt;br /&gt;&lt;/p&gt;             &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt;&amp;gt; mesRDVs;&amp;#160; &lt;br /&gt;              &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; LayoutRoot_Loaded(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;RoutedEventArgs&lt;/span&gt; e)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;{&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Calendar1.SelectionMode = &lt;span style="color: #2b91af"&gt;CalendarSelectionMode&lt;/span&gt;.None;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; Calendar1.FirstDayOfWeek = &lt;span style="color: #2b91af"&gt;DayOfWeek&lt;/span&gt;.Monday;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; CalendarButtons = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;CalendarDayButton&lt;/span&gt;&amp;gt;();&amp;#160; &lt;br /&gt;              &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; mesRDVs = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt;&amp;gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; { &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 11, 1), intitule=&lt;span style="color: #a31515"&gt;&amp;quot;rdv1&amp;quot;&lt;/span&gt; },&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" 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;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 11, 8), intitule=&lt;span style="color: #a31515"&gt;&amp;quot;rdv2&amp;quot;&lt;/span&gt; },&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" 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;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 11, 8), intitule=&lt;span style="color: #a31515"&gt;&amp;quot;rdv3&amp;quot;&lt;/span&gt; },&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" 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;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 11, 25), intitule=&lt;span style="color: #a31515"&gt;&amp;quot;rdv4&amp;quot;&lt;/span&gt; },              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 12, 7), intitule= &lt;span style="color: #a31515"&gt;&amp;quot;rdv5&amp;quot;&lt;/span&gt; },              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;RDV&lt;/span&gt; { date=&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;(2008, 10, 28), intitule= &lt;span style="color: #a31515"&gt;&amp;quot;rdv6&amp;quot;&lt;/span&gt; }              &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160; };&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;          &lt;p mce_keep="true"&gt;Maintenant que nous avons chargé des données il faut que l'on puisse savoir à quel jour du calendrier correspond chaque &lt;strong&gt;CalendarDayButton&lt;/strong&gt; de notre liste lorsqu'on change de mois sur le calendrier.&lt;/p&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: green"&gt;//Changement de mois&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; Calendar1_DisplayDateChanged(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;CalendarDateChangedEventArgs&lt;/span&gt; e)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;{ &lt;/span&gt;&lt;/p&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;RemplirCalendrier(Calendar1.DisplayDate);&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;          &lt;p mce_keep="true"&gt;Ceci sera fait dans la méthode &lt;strong&gt;RemplirCalendrier &lt;/strong&gt;ci-dessous.&lt;/p&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; RemplirCalendrier(&lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt; PremierJourDuMoisCourant)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;{&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&amp;#160; int&lt;/span&gt; compteur = 0;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160; StackPanel&lt;/span&gt; conteneur;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160; DateTime&lt;/span&gt; jourCourant;&amp;#160; &lt;br /&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&amp;#160; int&lt;/span&gt; JourDu1erDuMois = (&lt;span style="color: blue"&gt;int&lt;/span&gt;)PremierJourDuMoisCourant.DayOfWeek;&amp;#160; &lt;br /&gt;              &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: green"&gt;&amp;#160; //Cas du dimanche&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&amp;#160; if&lt;/span&gt; (JourDu1erDuMois == 0) JourDu1erDuMois = 7;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;//Cas du lundi -&amp;gt; Si le Premier du mois est un lundi,&amp;#160; &lt;br /&gt;&amp;#160; //alors il sera affiché sur la 2ème ligne du calendrier&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&amp;#160; if&lt;/span&gt; (JourDu1erDuMois == 1) JourDu1erDuMois = 8; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;               &lt;br /&gt;                &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;//Parcours de tous les jours &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160; foreach&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; (&lt;span style="color: #2b91af"&gt;CalendarDayButton&lt;/span&gt; cdb &lt;span style="color: blue"&gt;in&lt;/span&gt; CalendarButtons)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160; { &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;conteneur = cdb.Parent &lt;span style="color: blue"&gt;as&lt;/span&gt; &lt;span style="color: #2b91af"&gt;StackPanel&lt;/span&gt;;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;jourCourant = PremierJourDuMoisCourant.AddDays(compteur).AddDays(1 - JourDu1erDuMois);&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;               &lt;br /&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: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; nbControles = conteneur.Children.Count;&amp;#160; &lt;br /&gt;              &lt;br /&gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: green; font-size: 10pt; mso-no-proof: yes"&gt;//Suppression du contenu du jour              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; //sauf du contrôle CalendarDayButton&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; for&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; (&lt;span style="color: blue"&gt;int&lt;/span&gt; i = nbControles - 1; i &amp;gt; 0; i—)&amp;#160; &lt;br /&gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;conteneur.Children.RemoveAt(i);&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;               &lt;br /&gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;//Sélection des RDV du jour courant&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;var&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; query = &lt;span style="color: blue"&gt;from&lt;/span&gt; rdv &lt;span style="color: blue"&gt;in&lt;/span&gt; mesRDVs&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;where&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt; rdv.date.Date == jourCourant&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;select&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; { rdv.intitule };&amp;#160; &lt;br /&gt;              &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;//Ajout d'un contrôle Button                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; //pour chaque RDV &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&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: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; foreach&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt; (&lt;span style="color: blue"&gt;var&lt;/span&gt; rdv &lt;span style="color: blue"&gt;in&lt;/span&gt; query)&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Button&lt;/span&gt; btn = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Button&lt;/span&gt;();               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-ansi-language: en-us; mso-no-proof: yes" lang="EN-US"&gt;btn.Content = rdv.intitule;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;conteneur.Children.Add(btn);&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/span&gt;            &lt;br /&gt;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;compteur ++;&amp;#160; &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style="font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;          &lt;p mce_keep="true"&gt;&lt;/p&gt;          &lt;p mce_keep="true"&gt;La première étape est de &lt;strong&gt;calculer quel est le jour du 1er du mois courant&lt;/strong&gt;.             &lt;br /&gt;A partir de cette information, on peut parcourir la collection de CalendarDayButton et définir la date que chaque CalendarDayButton représente.             &lt;br /&gt;Notez qu'il y a un un cas particulier pour le lundi (si je détermine que le lundi est le premier jour de la semaine) : si le premier du mois tombe un lundi, alors le premier du mois sera affiché sur la deuxième ligne du calendrier, afin que l'on puisse voir quelques jours du mois précédent sur le calendrier. Si vous définissez un autre jour comme étant le début de semaine, alors il faudra adapter un peu le code…&lt;/p&gt;          &lt;p mce_keep="true"&gt;Il faut donc parcourir la liste de CalendarDayButton.            &lt;br /&gt;&lt;strong&gt;Pour chaque CalendarDayButton, je récupère son parent (qui est le StackPanel définit dans le template).              &lt;br /&gt;&lt;/strong&gt;A partir de ce StackPanel, je supprime tous les contrôles enfants (sauf le CalendarDayButton lui-même que j'ai laissé à l'indice 0), afin de supprimer tous les RDV précédemment placés dans ce StackPanel.             &lt;br /&gt;Je définis le jour courant, puis je fais une requête sur ma collection de RDV afin de récupérer tous les RDV du jour courant.             &lt;br /&gt;Je boucle enfin sur le résultat obtenu, et j'ajoute pour chaque RDV un bouton (on pourrait imaginer autre chose) au &lt;strong&gt;StackPanel&lt;/strong&gt;.             &lt;br /&gt;J'aurai aussi pu gérer l'événement click de chaque bouton afin d'afficher le détail du RDV lorsque l'utilisateur clique sur un RDV par exemple, mais je vous laisse le soin d'arranger tout cela comme vous le souhaitez...&lt;/p&gt;          &lt;p mce_keep="true"&gt;Le résultat obtenu est le suivant :&lt;/p&gt;          &lt;p mce_keep="true"&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/aurelien/WindowsLiveWriter/CommentajouterducontenuunCalendarSilverl_8F75/image_2.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/aurelien/WindowsLiveWriter/CommentajouterducontenuunCalendarSilverl_8F75/image_thumb.png" width="501" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p mce_keep="true"&gt;Si vous souhaitez changer le style général de votre calendrier, alors vous pouvez vous rendre sur le blog de Corrina Barber : &lt;a target="_blank" href="http://blogs.msdn.com/corrinab/"&gt;http://blogs.msdn.com/corrinab/&lt;/a&gt;.&lt;/p&gt;          &lt;p mce_keep="true"&gt;Vous pouvez télécharger le code source de cet exemple &lt;a href="http://norel.members.winisp.net/ExempleCalendrier.zip"&gt;ici&lt;/a&gt;.&lt;/p&gt;          &lt;p mce_keep="true"&gt;A bientôt,            &lt;br /&gt;Aurélien &lt;/p&gt;          &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;          &lt;p mce_keep="true"&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9031959" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Silverlight 2 est RTW !</title><link>http://blogs.msdn.com/aurelien/archive/2008/10/14/silverlight-2-est-rtw.aspx</link><pubDate>Tue, 14 Oct 2008 11:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8999186</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/8999186.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=8999186</wfw:commentRss><description>&lt;P&gt;Etant un adepte de Silverlight 2 depuis sa version Alpha (qui s'appelait Silverlight 1.1 Alpha à l'époque), j'ai le plaisir de vous annoncer que &lt;STRONG&gt;Silverlight 2 est RTW &lt;/STRONG&gt;!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Si vous avez développé sur la version Beta 2 :&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Désinstaller le Runtime Silverlight 2 Beta 2&lt;/LI&gt;
&lt;LI&gt;Désinstaller le Silverlight SDK Beta 2&lt;/LI&gt;
&lt;LI&gt;Désinstaller les Silverlight Tools Beta 2 for Visual Studio&lt;/LI&gt;
&lt;LI&gt;Désinstaller Microsoft Expression Blend 2.5 June 2008 Preview (s'il était installé)&lt;/LI&gt;
&lt;LI&gt;Désinstaller Deep Zoom Composer (s'il était installé)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Afin de développer sur Silverlight 2 RTW, vous devez :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Installer les &lt;A target=_blank href="http://go.microsoft.com/fwlink/?LinkId=129043" mce_href="http://go.microsoft.com/fwlink/?LinkId=129043"&gt;Silverlight Tools for Visual Studio 2008 SP1&lt;/A&gt;&amp;nbsp;qui installeront les modèles de projet Silverlight 2, le runtime et le SDK.&lt;/LI&gt;
&lt;LI&gt;Installer &lt;A target=_blank href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EB9B5C48-BA2B-4C39-A1C3-135C60BBBE66&amp;amp;displaylang=en"&gt;Microsoft Expression Blend 2 Service Pack 1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Installer &lt;U&gt;&lt;FONT color=#0066cc&gt;&lt;A target=_blank href="http://www.microsoft.com/downloads/details.aspx?FamilyID=457B17B7-52BF-4BDA-87A3-FA8A4673F8BF&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=457B17B7-52BF-4BDA-87A3-FA8A4673F8BF&amp;amp;displaylang=en"&gt;Deep Zoom Composer&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Si vous désirez installer uniquement le runtime Silverlight 2, ça se passe &lt;A target=_blank href="http://go.microsoft.com/fwlink/?LinkID=124807" mce_href="http://go.microsoft.com/fwlink/?LinkID=124807"&gt;ici&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Plus d'informations et de&amp;nbsp;ressources sur &lt;A target=_blank href="http://silverlight.net/GetStarted" mce_href="http://silverlight.net/GetStarted"&gt;http://silverlight.net/GetStarted&lt;/A&gt;&amp;nbsp;et &lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: FR; mso-fareast-language: FR; mso-bidi-language: AR-SA"&gt;&lt;A target=_blank href="http://msdn.microsoft.com/fr-fr/silverlight/" mce_href="http://msdn.microsoft.com/fr-fr/silverlight/"&gt;http://msdn.microsoft.com/fr-fr/silverlight/&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Bons développements sur Silverlight 2 !&lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999186" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Le multi-targeting de Visual Studio et les Services Packs</title><link>http://blogs.msdn.com/aurelien/archive/2008/09/23/le-multi-targeting-de-visual-studio-et-les-services-packs.aspx</link><pubDate>Tue, 23 Sep 2008 18:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8962367</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/8962367.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=8962367</wfw:commentRss><description>&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;Aujourd'hui je voudrais parler de &lt;STRONG&gt;Visual Studio 2008&lt;/STRONG&gt;, du &lt;STRONG&gt;multi-targeting&lt;/STRONG&gt; et des &lt;STRONG&gt;Services Packs&lt;/STRONG&gt; du Framework .NET.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Comme vous le savez sûrement, &lt;STRONG&gt;Visual Studio 2008 vous permet de choisir une version cible du Framework .NET&lt;/STRONG&gt; pour&amp;nbsp;vos projets.&lt;BR&gt;Ceci vous permet donc de développer des projets pour les Frameworks 2.0, 3.0 ou 3.5 à l'aide d'un même outil.&lt;/P&gt;
&lt;P&gt;Cependant il pourrait être intéressant de savoir lors de vos développements si vous utilisez une classe, un type ou une méthode apporté(e) par un Service Pack du Framework .NET cible, et qui n'était donc pas présente dans la version RTM du Framework en question.&lt;/P&gt;
&lt;P&gt;A première vue, on pourrait se demander pourquoi car il va de soi que tout bon développeur s'assure bien évidemment qu'il va déployer son application sur des machines ayant la même version du Framework .NET, avec le même Service Pack que la plateforme de développement.&lt;/P&gt;
&lt;P&gt;Toutefois, cela se complique un peu avec le &lt;STRONG&gt;Framework .NET 3.5 Service Pack 1 qui installe le Service Pack 2 du Framework .NET 2.0&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;En effet, ce &lt;STRONG&gt;Service Pack 2 n'est pas installable seul&lt;/STRONG&gt; (pour le moment en tous cas, affaire à suivre...), il ne s'installe que par l'installation du&amp;nbsp;SP1 du Framework .NET 3.5.&lt;/P&gt;
&lt;P&gt;Voici au passage un rappel de là où nous en sommes des versions de Visual Studio et de CLR.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="https://blogs.msdn.com/photos/aurnor/images/8962412/500x216.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="https://blogs.msdn.com/photos/aurnor/images/8962413/500x295.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Imaginons alors une équipe de développement qui souhaite utiliser Visual Studio 2008 SP1 pour continuer à créer des applications .NET 2.0 SP1, car son parc de machines clientes n'est équipé que du Framework .NET 2.0 SP1,&amp;nbsp;et que la migration vers le Framework .NET 3.5 SP1 n'est pas à l'ordre du jour.&lt;BR&gt;Cette équipe risque alors de développer en utilisant des nouvelles fonctionnalités du Framework .NET&amp;nbsp;SP2, alors que le parc ciblé n'en est qu'au SP1.&lt;BR&gt;Si les développeurs utilisent une classe, un type ou une méthode apportée par le Service Pack 2, vous imaginez bien que des problèmes vont vite faire surface.&lt;/P&gt;
&lt;P mce_keep="true"&gt;J'espère que vous m'avez suivi jusque là, sinon relisez le passage précédent au calme&amp;nbsp;:o)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Afin d'éviter donc d'utiliser des fonctionnalités apportées par un Service Pack donné, vous pouvez utiliser l’outil d’analyse de code (&lt;STRONG&gt;Code Analysis&lt;/STRONG&gt;).&lt;BR&gt;Cet outil contient une règle afin de vous prévenir si vous utilisez une fonctionnalité qui ne sera pas présente sur les postes cibles car le niveau de service pack est différent. Plus précisément cette règle vous indiquera si vous utilisez une fonctionnalité apportée par un Service Pack du Framework .NET, par rapport au Framework .NET cible de votre projet.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Il faut pour cela &lt;STRONG&gt;activer une règle&lt;/STRONG&gt; dans l’onglet Code Analysis des propriétés de votre projet, cette règle n’est disponible que pour les versions &lt;STRONG&gt;Visual Studio Team Development&lt;/STRONG&gt; et &lt;STRONG&gt;Visual Studio Team Suite&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Si vous n'avez pas une de ces versions de Visual Studio, alors vous pouvez obtenir la même option avec l'outil &lt;STRONG&gt;FxCop&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;L'analyse de votre application via Code Analysis ou FxCop lèvera alors un avertissement si vous utilisez une fonctionnalité apportée par un Service Pack des Framework 2.0, 3.0 ou 3.5.&lt;/P&gt;
&lt;P mce_keep="true"&gt;L'article suivant de David Kean explique précisément comment utiliser ces outils, avec pleins de screenshots&amp;nbsp;pour configurer tout ça : &lt;A href="http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx" mce_href="http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx"&gt;http://davesbox.com/archive/2008/08/25/new-for-visual-studio-2008-sp1-and-fxcop-1-36-multi-targeting-rule.aspx&lt;/A&gt;. Merci à lui pour cette synthèse.&lt;/P&gt;
&lt;P mce_keep="true"&gt;A bientôt,&lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8962367" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category></item><item><title>Supprimer la bordure 3D d'une fenêtre MDI parent</title><link>http://blogs.msdn.com/aurelien/archive/2008/09/17/supprimer-la-bordure-3d-d-une-fen-tre-mdi-parent.aspx</link><pubDate>Wed, 17 Sep 2008 15:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8955386</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/8955386.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=8955386</wfw:commentRss><description>&lt;P&gt;Bonjour,&lt;/P&gt;
&lt;P&gt;Lorsque vous créez une application Windows Forms MDI, il se peut que vous ayez envie d'avoir la fenêtre parent qui n'ait pas de bordure du tout&amp;nbsp;(on a le droit, hein...).&lt;/P&gt;
&lt;P&gt;Pour cela, vous positionnez alors la propriété &lt;STRONG&gt;IsMdiContainer&lt;/STRONG&gt; à &lt;STRONG&gt;True &lt;/STRONG&gt;pour indiquer que la fenêtre est le conteneur des fenêtres MDI, mais aussi la propriété &lt;STRONG&gt;FormBorderStyle&lt;/STRONG&gt; à&lt;STRONG&gt;&amp;nbsp;None &lt;/STRONG&gt;afin de supprimer toute bordure sur cette fenêtre.&lt;/P&gt;
&lt;P&gt;Vous compilez et exécutez votre application, mais vous constatez qu'une bordure de type 3D persiste :&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://blogs.msdn.com/photos/aurnor/images/8955376/original.aspx" mce_src="http://blogs.msdn.com/photos/aurnor/images/8955376/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;Cette bordure qui persiste représente en fait la zone conteneur de la fenêtre MDI.&lt;/P&gt;
&lt;P&gt;But du jeu : la supprimer.&lt;/P&gt;
&lt;P&gt;La bordure en question n’est pas sur la Form MDI Parent elle-même, mais sur un contrôle de type &lt;STRONG&gt;MDIClient&lt;/STRONG&gt; de cette Form (ce contrôle est positionné automatiquement dès que vous spécifiez &lt;STRONG&gt;IsMdiContainer="True"&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Le code suivant montre comment retrouver ce contrôle MDIClient et supprimer sa bordure, à l'aide d'APIs Win32:&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;MdiClient&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; mdiClient = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Parcourt des contrôles de la Form&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;for&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; i = 0; i &amp;lt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Controls.Count; i++)&lt;BR&gt;{&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Si le Form est un MDI Container, il contient un client MDIClient&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;mdiClient = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Controls[i] &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;MdiClient&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (mdiClient != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;break&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Si le contrôle MDIClient est trouvé&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (mdiClient != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; iStyle = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.GetWindowLong(mdiClient.Handle, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.GWL_EXSTYLE);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;//Suppression du style WS_EX_CLIENTEDGE des styles étendus du contrôle courant&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;iStyle &amp;amp;= ~&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.WS_EX_CLIENTEDGE;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;//Application du nouveau style&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;iStyle = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.SetWindowLong(mdiClient.Handle, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.GWL_EXSTYLE, iStyle);&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;FONT size=2&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;Où Win32 est une classe&amp;nbsp;statique reprenant certains appels aux APIs système et certaines constantes Win32.&lt;BR&gt;Par exemple :&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Win32&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT size=2&gt;[&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DllImport&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"user32.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GetWindowLong(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;IntPtr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; window, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; index);&lt;BR&gt;&lt;BR&gt;[&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;DllImport&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"user32.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;extern&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SetWindowLong(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;IntPtr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; window, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; index, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; value);&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;const&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GWL_EXSTYLE = -20;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;const&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; WS_EX_CLIENTEDGE = 0x00000200;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Le résultat obtenu est le suivant :&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://blogs.msdn.com/photos/aurnor/images/8955378/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;La bordure a bien disparu !&lt;/P&gt;
&lt;P&gt;A bientôt,&lt;BR&gt;Aurélien&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8955386" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aurelien/archive/tags/border/default.aspx">border</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/mdi/default.aspx">mdi</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/Windows+Form/default.aspx">Windows Form</category><category domain="http://blogs.msdn.com/aurelien/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Lancement de mon Blog</title><link>http://blogs.msdn.com/aurelien/archive/2008/09/17/lancement-de-mon-blog.aspx</link><pubDate>Wed, 17 Sep 2008 13:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8955289</guid><dc:creator>Aurélien Norie</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/aurelien/comments/8955289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aurelien/commentrss.aspx?PostID=8955289</wfw:commentRss><description>&lt;P&gt;Bonjour à tous,&lt;/P&gt;
&lt;P&gt;Je m'appelle Aurélien Norie, je suis &lt;STRONG&gt;ADC&lt;/STRONG&gt; (&lt;STRONG&gt;Application Development Consultant&lt;/STRONG&gt;) chez Microsoft France.&lt;BR&gt;Je suis en charge du suivi d'un portefeuille de clients afin de les conseiller proactivement ou réactivement sur tout type de demande sur la &lt;STRONG&gt;plateforme de développement Microsoft&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Avant cette expérience de conseil, j'ai passé&amp;nbsp;quatre ans et demi en tant qu'ingénieur support pour les développeurs, puis un an et demi en tant que développeur d'applications internes, tout cela chez Microsoft France que j'ai rejoint en 2001.&lt;/P&gt;
&lt;P&gt;L'objectif de ce blog est de&amp;nbsp;partager&amp;nbsp;des exemples de code, conseils techniques, astuces afin de faire profiter à un maximum&amp;nbsp;de développeurs le fruit de mes recherches.&lt;/P&gt;
&lt;P mce_keep="true"&gt;N'hésitez pas à laisser des commentaires que je lirai avec plaisir.&lt;/P&gt;
&lt;P mce_keep="true"&gt;A très bientôt pour le premier post technique.&lt;BR&gt;Aurélien Norie&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8955289" width="1" height="1"&gt;</description></item></channel></rss>