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

<channel>
	<title>Blog de Jérémie Bertrand &#187; XAML</title>
	<atom:link href="https://blog.developpez.com/laedit/pcategory/xaml/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/laedit</link>
	<description></description>
	<lastBuildDate>Tue, 22 Mar 2011 14:30:08 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Astuces en WPF</title>
		<link>https://blog.developpez.com/laedit/p6911/c/astuces_en_wpf</link>
		<comments>https://blog.developpez.com/laedit/p6911/c/astuces_en_wpf#comments</comments>
		<pubDate>Wed, 10 Dec 2008 09:46:57 +0000</pubDate>
		<dc:creator><![CDATA[laedit]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je tiens tout d&#8217;abord à remercier l&#8217;équipe de Developpez.com pour m&#8217;avoir permis de créer ce blog ! Passons maintenant aux astuces WPF qui porteront aujourd&#8217;hui sur deux sujets : l&#8217;héritage de la classe Window et des Storyboards en XAML. Commençons donc avec l&#8217;héritage de la classe Window. Imaginons que nous avons comme projet de faire une jolie application WPF, avec des fenêtres personnalisées. Problème : on supprime la barre de titre Windows, donc la possibilité [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je tiens tout d&rsquo;abord à remercier l&rsquo;équipe de Developpez.com pour m&rsquo;avoir permis de créer ce blog !</p>
<p>
Passons maintenant aux astuces WPF qui porteront aujourd&rsquo;hui sur deux sujets : l&rsquo;héritage de la classe Window et des Storyboards en XAML.</p>
<p>Commençons donc avec l&rsquo;héritage de la classe Window.<br />
Imaginons que nous avons comme projet de faire une jolie application WPF, avec des fenêtres personnalisées. Problème : on supprime la barre de titre Windows, donc la possibilité de déplacer la fenêtre en la cliquant et la déplaçant. Il faut donc implémenter ce comportement à toutes nos fenêtres.</p>
<p>En windows form, on pouvait très facilement faire une fenêtre mère dont hériterait des fenêtres enfant afin d’avoir par exemple le même comportement.<br />
Mais en WPF, on ne peut pas le faire aussi simplement.<br />
En effet, si on fait hériter notre classe Window1 de notre fenêtre mère MotherWindow dans le fichier Window1.xaml.cs comme ceci :</p>
<p><code class="codecolorer text default"><span class="text">public partial class Window1 : MotherWindow</span></code></p>
<p>Le compilateur va nous retourner une erreur, car l’élément racine du fichier xaml correspondant précise la classe mère dont doit hériter la classe Window1.<br />
Il suffit donc de le changer lui aussi, en définissant aussi un espace de nom dans le fichier xaml :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;local:MotherWindow x:Class=&quot;Heritage.Window1&quot; <br />
&nbsp; &nbsp; xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; <br />
&nbsp; &nbsp; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot; <br />
&nbsp; &nbsp; xmlns:local=&quot;clr-namespace:Heritage&quot; <br />
&nbsp; &nbsp; Title=&quot;Window1&quot; Height=&quot;300&quot; Width=&quot;300&quot;&gt; <br />
&nbsp; &nbsp; &lt;Grid&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &lt;/Grid&gt; <br />
&lt;/local:CloseMove&gt;</div></div>
<p>Sans oublier bien sûr de préciser parmi les espaces de noms que local correspond à notre assembly.</p>
<p>Passons maintenant aux Storyboards en XAML.</p>
<p>Il arrive parfois que l’on veuille faire référence à une propriété d’un enfant d’une Window, d’une Page ou d’un UserControl dans un Storyboard situé dans les ressources de celui-ci.<br />
Pour y arriver, il suffit de préciser l’attribut Storyboard.TargetName avec le nom x:Name de l’enfant et ensuite de préciser sa propriété comme on le ferait normalement dans l’attribut Storyboard.targetProperty d’une balise AnimationUsingKeyFrames :</p>
<p><code class="codecolorer text default"><span class="text">&lt;ObjectAnimationUsingKeyFrames BeginTime=&quot;00:00:00&quot; Storyboard.TargetName=&quot;border&quot; Storyboard.TargetProperty=&quot;Background&quot;&gt;</span></code></p>
<p>En ayant bien sûr précisé le x:Name de la Border :</p>
<p><code class="codecolorer text default"><span class="text">&lt;Border x:Name=&quot;border&quot;&gt;</span></code></p>
<p>Et pour appeler un Storyboard défini dans un fichier xml à partir du code, il suffit d’utiliser la méthode beginStoryboard avec le nom du Storyboard :</p>
<p><code class="codecolorer text default"><span class="text">this.BeginStoryboard((Storyboard)this.FindResource(&quot;myStoryboard&quot;));</span></code></p>
<p>Au final, rien de bien compliqué en soit, mais que l&rsquo;on peut chercher durant un moment si on ne le sait pas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
