<?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>Tweened &#187; WPF</title>
	<atom:link href="http://www.tweened.org/fr/category/wpf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tweened.org</link>
	<description>powered by Silverlight</description>
	<lastBuildDate>Wed, 14 Dec 2011 16:38:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conférence sur les nouvelles interfaces tactiles</title>
		<link>http://www.tweened.org/fr/2011/12/14/conference-sur-les-nouvelles-interfaces-tactiles/</link>
		<comments>http://www.tweened.org/fr/2011/12/14/conference-sur-les-nouvelles-interfaces-tactiles/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 16:35:42 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[windows phone 7]]></category>
		<category><![CDATA[Conference tactile]]></category>

		<guid isPermaLink="false">http://www.tweened.net/fr/?p=1115</guid>
		<description><![CDATA[

Bonjour à tous,
Microsoft et certains de ces partenaires organisent un nouvel après-midi du développement au menu : Design et  nouvelles interfaces naturelles. C'est après les fêtes et c'est gratuit, si vous vous posez des questions ou êtes curieux à propos du développement d'interfaces tactiles, vous trouverez pas mal de réponse durant ces conférences.
9 Janvier [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p><a href="http://www.tweened.org/wp-content/files/capture1_dev.jpg" title="surface2" rel="lightbox[1115]"><img class="aligncenter size-full wp-image-1113" title="surface2" src="http://www.tweened.org/wp-content/files/capture1_dev.jpg" alt="" width="630" height="200" /></a></p>
<p>Bonjour à tous,<br />
Microsoft et certains de ces partenaires organisent un nouvel après-midi du développement au menu : Design et  nouvelles interfaces naturelles. C'est après les fêtes et c'est gratuit, si vous vous posez des questions ou êtes curieux à propos du développement d'interfaces tactiles, vous trouverez pas mal de réponse durant ces conférences.</p>
<p>9 Janvier 2012 – 14h00 – 18h00 - Campus Microsoft Issy Les Moulineaux - A partir de 18h00 : Bière Pizza Party !<br />
Au programme de ce nouvel Après-midi du dev :</p>
<p>·         Les nouvelles interactions digitales et naturelles<br />
o   Dick Lantim - Sensorit<br />
·         Gérer et développer une application tactile<br />
o   Nicolas Calvi et Johanna Rowe - Winvise<br />
·         Application Blend : Le pipeline de création et de réalisation. Revue de la conception et de la mise en production d'une application WPF depuis son maquettage (Sketchflow) jusqu'à sa réalisation (Blend)<br />
o   Michel Rousseau - Bewise<br />
·         Réaliser des présentations efficaces en utilisant la norme METRO<br />
o   David Catuhe - Microsoft                       </p>
<p>Pour vous inscrire c'est <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032501510&#038;culture=fr-fr" >ici</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2011/12/14/conference-sur-les-nouvelles-interfaces-tactiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surface 2 final sdk release</title>
		<link>http://www.tweened.org/fr/2011/07/13/surface-2-final-sdk-release/</link>
		<comments>http://www.tweened.org/fr/2011/07/13/surface-2-final-sdk-release/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 09:25:52 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[MultiTouch]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=1110</guid>
		<description><![CDATA[

Voici une première bonne nouvelle pour tous les concepteurs d'applications Surface, vous pouvez désormais télécharger le SDK Surface 2 en version finale.
L'autre bonne nouvelle : ce SDK remplace le précédent Windows Touch beta SDK, il n'est donc plus nécessaire d'installer deux plateformes différentes. Que vous soyez dans l’environnement Windows 7 ou Surface, la conception d'applications [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p><a href="http://www.tweened.org/wp-content/files/surface2.jpg" title="surface2" rel="lightbox[1110]"><img class="aligncenter size-full wp-image-1113" title="surface2" src="http://www.tweened.org/wp-content/files/surface2.jpg" alt="" width="630" height="200" /></a></p>
<p>Voici une première bonne nouvelle pour tous les concepteurs d'applications Surface, vous pouvez désormais<a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=26716#overview" target="_blank"> télécharger le SDK Surface 2</a> en version finale.</p>
<p>L'autre bonne nouvelle : ce SDK remplace le précédent Windows Touch beta SDK, il n'est donc plus nécessaire d'installer deux plateformes différentes. Que vous soyez dans l’environnement Windows 7 ou Surface, la conception d'applications tactiles devient moins chronophage. Par exemple, bon nombres de contrôles sont fournis par défaut et il ne sera plus nécessaire de tous les re-développer. Du coup, un certain nombre d'ajustements a été réalisé pour supporter les différents types de hardware. Pour ma part, le premier test que je vais faire consiste à tester les  performances sur les tablettes tactiles Windows 7. Le sdk beta était  assez lourd et peu performant sur les tablettes tactiles, cela a-t-il  évolué ?</p>
<p>Voici, dans les grandes lignes, les améliorations apportées :</p>
<ul>
<li>Possibilité de définir les spécificités du matériel hardware :
<ul>
<li>Modification de la résolution</li>
<li>Définition du nombre de points de contact simultanés</li>
<li>Activation de la détection d'objets tag</li>
<li>Activation de la détection de blob</li>
<li>Activation de la récupération de la bounding box de contact</li>
<li>Activation de la récupération de l'orientation</li>
<li>Définition de la surface de contact allouée.</li>
</ul>
</li>
<li>Les contrôles Surface bénéficie via l'héritage des contrôles WPF standard, des événements souris, stylus ou tactiles. Cela est très pratique lorsque l'on développe en environnement  desktop Window 7.</li>
<li>Simplification de l'arbre visuel et logique des contrôles pour faciliter le personnalisation.</li>
<li>Les événements de type gesture, comme Tap, ne sont plus implémentés directement dans la classe SurfaceControl mais sont dorénavant attachés. Le concept d'évènement attaché existe depuis .Net 3 mais c'est une utilisation vraiment pertinente que nous propose Microsoft.</li>
<li>La classe UserControl est enrichie par défaut avec les nouveaux événements et gestionnaires de capture tactiles, la classe SurfaceUserControl est donc supprimée.</li>
<li>Le simulateur Surface a été énormément enrichi avec notament le support de l'orientation.</li>
</ul>
<p>Il y aurait encore beaucoup à dire, le mieux est de tester directement en développant des applications...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2011/07/13/surface-2-final-sdk-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ForceColumnBoundary AttachedProperty</title>
		<link>http://www.tweened.org/fr/2011/05/31/forcecolumnboundary-attachedproperty/</link>
		<comments>http://www.tweened.org/fr/2011/05/31/forcecolumnboundary-attachedproperty/#comments</comments>
		<pubDate>Tue, 31 May 2011 07:47:40 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Composants]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tutos Docs]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[AttachedProperty]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=1088</guid>
		<description><![CDATA[

J'ai récemment eu besoin  d'un Datagrid avec lignes dépliables, c'est une demande classique de nos clients et des éditeurs comme Telerik propose cette fonctionnalité en standard. Toutefois les clients ne souhaite pas toujours dépenser 1000$  de licence. Du coup, je suis parti d'une ListBox que j'ai configuré pour qu'elle prenne la forme d'un [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p><a href="http://www.tweened.org/wp-content/files/corrigeGridForce.png" title="corrigeGridForce" rel="lightbox[1088]"><img src="http://www.tweened.org/wp-content/files/corrigeGridForce.png" alt="" title="corrigeGridForce" width="630" height="200" class="aligncenter size-full wp-image-1099" /></a><br />
J'ai récemment eu besoin  d'un Datagrid avec lignes dépliables, c'est une demande classique de nos clients et des éditeurs comme Telerik propose cette fonctionnalité en standard. Toutefois les clients ne souhaite pas toujours dépenser 1000$  de licence. Du coup, je suis parti d'une ListBox que j'ai configuré pour qu'elle prenne la forme d'un Datagrid, déplier une ligne se révèle assez simple dans ce cas. Pourtant je suis tombé sur un bug du Panel Grid auquel je ne m'attendais pas vraiment. Chaque colonne de ma grille au sein de mon ItemTemplate possède une valeur relative, chacune d'entre elles possède un FrameworkElement dans le cas présent un TextBlock.</p>
<p><a href="http://www.tweened.org/wp-content/files/ItemTemplate.png" title="ItemTemplate" rel="lightbox[1088]"><img class="aligncenter size-full wp-image-1090" title="ItemTemplate" src="http://www.tweened.org/wp-content/files/ItemTemplate.png" alt="" width="630" height="75" /></a></p>
<p>Toutefois lorsque le contenu d'un TextBlock (par exemple)  au sein d'une colonne est trop important, cela décale chaque colonne, du coup on perd l'effet Datagrid. Ce comportement du Layout est illogique si l'on considère qu'en mode Stretch horizontal, chaque TextBlock ne devrait pas dépasser la largeur de la colonne dans laquelle il se trouve. Le résultat est affiché ci-dessous.</p>
<p><a href="http://www.tweened.org/wp-content/files/nonCorrigeGrid.png" title="nonCorrigeGrid" rel="lightbox[1088]"><img class="aligncenter size-full wp-image-1091" title="nonCorrigeGrid" src="http://www.tweened.org/wp-content/files/nonCorrigeGrid.png" alt="" width="630" height="144" /></a>Pour remédier à cela, j'ai codé une propriété attachée qui force chaque élément au sein d'une colonne à respecter les limites de cette dernière. Le code est relativement simple :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">class</span> FrameworkElementExtension
<span style="color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> Dictionary<span style="color: #008000;">&lt;</span>frameworkelement , GridLength<span style="color: #008000;">&gt;</span> FrameworkElementToGridLength <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Dictionary<span style="color: #008000;">&lt;/</span>frameworkelement<span style="color: #008000;">&gt;&lt;</span>frameworkelement , GridLength<span style="color: #008000;">&gt;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">bool</span> GetForceColumnBoundary<span style="color: #000000;">&#40;</span>DependencyObject obj<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">bool</span><span style="color: #000000;">&#41;</span>obj.<span style="color: #0000FF;">GetValue</span><span style="color: #000000;">&#40;</span>ForceColumnBoundaryProperty<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> SetForceColumnBoundary<span style="color: #000000;">&#40;</span>DependencyObject obj, <span style="color: #FF0000;">bool</span> value<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
&nbsp;
            obj.<span style="color: #0000FF;">SetValue</span><span style="color: #000000;">&#40;</span>ForceColumnBoundaryProperty, value<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// Using a DependencyProperty as the backing store for EnsureColumnBoundary.  This enables animation, styling, binding, etc...</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">readonly</span> DependencyProperty ForceColumnBoundaryProperty <span style="color: #008000;">=</span>
        DependencyProperty.<span style="color: #0000FF;">RegisterAttached</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;ForceColumnBoundary&quot;</span>, <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">bool</span><span style="color: #000000;">&#41;</span>, <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>FrameworkElement<span style="color: #000000;">&#41;</span>, <span style="color: #008000;">new</span> PropertyMetadata<span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> PropertyChangedCallback<span style="color: #000000;">&#40;</span>OnEnsureColumnBoundary<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> OnEnsureColumnBoundary<span style="color: #000000;">&#40;</span>DependencyObject d, DependencyPropertyChangedEventArgs e<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
&nbsp;
        <span style="color: #FF0000;">bool</span> b <span style="color: #008000;">=</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Convert</span>.<span style="color: #0000FF;">ToBoolean</span><span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">NewValue</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        FrameworkElement fe <span style="color: #008000;">=</span> d <span style="color: #0600FF;">as</span> FrameworkElement<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>fe <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            return<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        Grid g <span style="color: #008000;">=</span> fe.<span style="color: #0000FF;">Parent</span> <span style="color: #0600FF;">as</span> Grid<span style="color: #008000;">;</span>
&nbsp;
        ColumnDefinition cd <span style="color: #008000;">=</span> g.<span style="color: #0000FF;">ColumnDefinitions</span><span style="color: #000000;">&#91;</span>Grid.<span style="color: #0000FF;">GetColumn</span><span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>g <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span> <span style="color: #008000;">||</span> cd <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span> <span style="color: #008000;">||</span> DesignerProperties.<span style="color: #0000FF;">GetIsInDesignMode</span><span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            return<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>b<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">!</span>FrameworkElementToGridLength.<span style="color: #0000FF;">ContainsKey</span><span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                FrameworkElementToGridLength.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>fe, cd.<span style="color: #0000FF;">Width</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
                g.<span style="color: #0000FF;">SizeChanged</span> <span style="color: #008000;">-=</span> <span style="color: #008000;">new</span> SizeChangedEventHandler<span style="color: #000000;">&#40;</span>g_SizeChanged<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                g.<span style="color: #0000FF;">SizeChanged</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> SizeChangedEventHandler<span style="color: #000000;">&#40;</span>g_SizeChanged<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
        <span style="color: #0600FF;">else</span>
        <span style="color: #000000;">&#123;</span>
            FrameworkElementToGridLength.<span style="color: #0000FF;">Remove</span><span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            g.<span style="color: #0000FF;">SizeChanged</span> <span style="color: #008000;">-=</span> <span style="color: #008000;">new</span> SizeChangedEventHandler<span style="color: #000000;">&#40;</span>g_SizeChanged<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> g_SizeChanged<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, SizeChangedEventArgs e<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        Grid g <span style="color: #008000;">=</span> sender <span style="color: #0600FF;">as</span> Grid<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>FrameworkElement fe <span style="color: #0600FF;">in</span> g.<span style="color: #0000FF;">Children</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #FF0000;">bool</span> b <span style="color: #008000;">=</span> GetForceColumnBoundary<span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>b<span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                GridLength gl <span style="color: #008000;">=</span> FrameworkElementToGridLength<span style="color: #000000;">&#91;</span>fe<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
                ColumnDefinition cd <span style="color: #008000;">=</span> g.<span style="color: #0000FF;">ColumnDefinitions</span><span style="color: #000000;">&#91;</span>Grid.<span style="color: #0000FF;">GetColumn</span><span style="color: #000000;">&#40;</span>fe<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
                cd.<span style="color: #0000FF;">Width</span> <span style="color: #008000;">=</span> gl<span style="color: #008000;">;</span>
&nbsp;
                fe.<span style="color: #0000FF;">Width</span> <span style="color: #008000;">=</span> gl.<span style="color: #0000FF;">Value</span><span style="color: #008000;">*</span>g.<span style="color: #0000FF;">ActualWidth</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #008000;">&lt;/</span>frameworkelement<span style="color: #008000;">&gt;</span></pre></div></div>

<p>Le résultat est immédiat et fonctionne qu'elle soit le type de colonne dans votre DataGrid.<br />
<a href="http://www.tweened.org/wp-content/files/corrigeGrid1.png" title="corrigeGrid" rel="lightbox[1088]"><img src="http://www.tweened.org/wp-content/files/corrigeGrid1.png" alt="" title="corrigeGrid" width="630" height="239" class="aligncenter size-full wp-image-1095" /></a><br />
Il suffit d'appliquer la propriété attachée à l'objet que vous souhaitez contraindre dans votre grille de cette manière :</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">Text=&quot;{Binding Client}&quot; TextWrapping=&quot;Wrap&quot; Grid.Column=&quot;1&quot;  
		local:FrameworkElementExtension.ForceColumnBoundary=&quot;True&quot;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2011/05/31/forcecolumnboundary-attachedproperty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laurent Bugnion&#8217;s MVVM light toolkit for Silverlight and WPF</title>
		<link>http://www.tweened.org/fr/2009/06/15/laurent-bugnions-mvvm-light-toolkit-for-silverlight-and-wpf/</link>
		<comments>http://www.tweened.org/fr/2009/06/15/laurent-bugnions-mvvm-light-toolkit-for-silverlight-and-wpf/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:01:05 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[pattern]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=317</guid>
		<description><![CDATA[

Laurent Bugnion propose au téléchargement un kit facilitant la conception Model View View Model. Pour rappel, MVVM est une déclinaison du design pattern MVC. Vous pouvez en trouver une explication ici : http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Une autre librairie MVVM performante est disponible à cette adresse pour les projets WPF :  http://wpf.codeplex.com/Wiki/View.aspx?title=WPF%20Model-View-ViewModel%20Toolkit.
Laurent propose quant à lui un mini [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p><a href="http://www.tweened.org/wp-content/files/capture1.jpg" title="capture1" rel="lightbox[317]"><img class="size-full wp-image-318 alignleft" style="border: 0pt none; margin-top: 2px; margin-bottom: 2px;" title="capture1" src="http://www.tweened.org/wp-content/files/capture1.jpg" alt="" width="580" height="180" /></a></p>
<p>Laurent Bugnion propose au <a title="Laurent's MVVM library" href="http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx" target="_blank">téléchargement un kit facilitant la conception Model View View Model</a>. Pour rappel, MVVM est une déclinaison du design pattern MVC. Vous pouvez en trouver une explication ici : <a title="MVVM MSDN Article" href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx" target="_blank">http://msdn.microsoft.com/en-us/magazine/dd419663.aspx</a></p>
<p>Une autre librairie MVVM performante est disponible à cette adresse pour les projets WPF :  <a href="http://wpf.codeplex.com/Wiki/View.aspx?title=WPF%20Model-View-ViewModel%20Toolkit">http://wpf.codeplex.com/Wiki/View.aspx?title=WPF%20Model-View-ViewModel%20Toolkit</a>.</p>
<p>Laurent propose quant à lui un mini framework qui s'accorde plus facilement aux développements s'appuyant sur Expression Blend tant pour les projets Silverlight que pour les projets WPF. De ce point de vue, nous manquions cruellement de framework car les solutions existantes sont pour la majeure partie orientée vers des développements WPF et éloignés des contraintes liées à l'utilisation de Blend en production...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2009/06/15/laurent-bugnions-mvvm-light-toolkit-for-silverlight-and-wpf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 RC</title>
		<link>http://www.tweened.org/fr/2009/04/30/windows-7-rc/</link>
		<comments>http://www.tweened.org/fr/2009/04/30/windows-7-rc/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 21:47:14 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Tutos Docs]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=295</guid>
		<description><![CDATA[

La version release candidate de windows seven est accessible aux abonnés MSDN depuis ce matin. J'avais assez envie de changer mon bon vieux Windows Xp, j'ai donc installé 7 sur deux postes dont un mac book pour le tester. Première bonne chose, je n'ai aucun problème de compatibilité, tout fonctionne directement sans heurts. Deuxième bonne [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p style="text-align: left;"><a href="http://www.tweened.org/wp-content/files/7.png" title="Windows 7" rel="lightbox[295]"><img class="size-full wp-image-298 aligncenter" style="border: 0pt none; margin-top: 10px; margin-bottom: 10px;" title="Windows 7" src="http://www.tweened.org/wp-content/files/7.png" alt="" width="480" height="153" /></a><br />
La version release candidate de windows seven est accessible aux abonnés MSDN depuis ce matin. J'avais assez envie de changer mon bon vieux Windows Xp, j'ai donc installé 7 sur deux postes dont un mac book pour le tester. Première bonne chose, je n'ai aucun problème de compatibilité, tout fonctionne directement sans heurts. Deuxième bonne nouvelle, sur VMWare, sur un simple macbook c'est rapide et efficace pourtant j'utilise de nombreux logiciels en même temps, Expression Blend, Visual Studio, Office, Photoshop, Flash, etc... On ressent l'effort de Microsoft pour apporter un maximum de performances et de stabilité au système. Seven s'annonce prometteur avec de nombreuses améliorations sur l'ergonomie notamment sans toutefois mimer MacOs, son grand concurrent. La grande nouveauté est l'intégration d'une machine virtuelle XP directement au sein de 7 ce qui permettra de faire tourner n'importe quel programme compatible avec XP. Il faudra tout de même attendre la version finale pour avoir une idée de ce système. La version RC quant à elle devrait être accessible dans le courant du mois de mai pour le grand public...</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2009/04/30/windows-7-rc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La propagation événementielle Bubbling en C#</title>
		<link>http://www.tweened.org/fr/2009/01/23/la-propagation-evenementielle-bubbling-en-c/</link>
		<comments>http://www.tweened.org/fr/2009/01/23/la-propagation-evenementielle-bubbling-en-c/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 16:57:07 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tutos Vidéos]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=198</guid>
		<description><![CDATA[
En tant que développeur ou même intégrateur vous avez sans déjà entendu parler de modèle événementiel. Le modèle événementiel d'un langage logique comme par exemple C# est crucial car c'est lui qui permet les interactions utilisateur.

Le modèle événementiel repose sur deux principes importants :
•         Le premier est [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p>En tant que développeur ou même intégrateur vous avez sans déjà entendu parler de modèle événementiel. Le modèle événementiel d'un langage logique comme par exemple C# est crucial car c'est lui qui permet les interactions utilisateur.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="exactfit" /><param name="salign" value="tl" /><param name="wmode" value="transparent" /><param name="src" value="http://www.tweened.org/wp-content/files/bubbling.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.tweened.org/wp-content/files/bubbling.swf" wmode="transparent" salign="tl" scale="exactfit" quality="best"></embed></object></p>
<p>Le modèle événementiel repose sur deux principes importants :</p>
<p>•         Le premier est le principe de diffusion d’événements, par exemple lorsque vous cliquez sur un bouton celui-ci diffuse un évènement <strong>Click</strong></p>
<p>•         Le second principe est celui d’écouteur. Il est bien beau de pouvoir diffuser des évènements, cependant il faut être à l’écoute de ceux-ci pour déclencher une action adéquate. L’objet qui réagit aux événements diffusés est appelé écouteur. En générale, l’écouteur est une méthode comme par exemple la méthode Page_Loaded.</p>
<p>On retrouve ces deux principes dans la vie réelle, voici un exemple :</p>
<p>•         Vous décidez de prendre un abonnement à un site Web d’annonces immobilières, le fait de vous abonner fait de vous un écouteur. En effet, à chaque nouvelle annonce, vous recevrez un email d’information concernant le bien immobilier. Vous écoutez le site Web qui agit en tant que diffuseur de l’évènement « nouvelle annonce mise en ligne ». A chaque nouvelle annonce reçue vous décidez ou non de visiter le bien. Ce qui correspond bien à une action en retour.</p>
<p>• Importante mais souvent oubliée cette phase est pourtant très importante : lorsque vous avez trouvé le bien le plus approprié, vous décidez d’arrêter la souscription à ce site, dès lors vous ne recevrez plus d’email. Autrement dit vous supprimez l’écouteur <img src='http://www.tweened.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>C’est exactement ce qui arrive lorsque vous développez pour Silverlight. C# voici les deux mêmes méthodes écrites différemment, vous remarquerez que l’écriture est nettement plus appropriée et claire, de plus vous aurez une aide à la complétion via l’IntelliSense :</p>
<p>•         souscription :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//Diffuseur.Événement += écouteur ;</span>
&nbsp;
monRectangle.<span style="color: #0000FF;">MouseLeftButtonDown</span> <span style="color: #008000;">+=</span> monRectangle_MouseLeftButtonDown<span style="color: #008000;">;</span></pre></div></div>

<p>•          désinscription :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//Diffuseur.Événement -= écouteur ;</span>
&nbsp;
monRectangle.<span style="color: #0000FF;">MouseLeftButtonDown</span> <span style="color: #008000;">-=</span> monRectangle_MouseLeftButtonDown<span style="color: #008000;">;</span></pre></div></div>

<p>Il est important de connaitre au moins ces bases car nous allons aborder un point assez spécifique aux langages de haut niveaux. En fait lorsqu'un objet graphique diffuse un événement ce n'est pas forcément l'objet auquel on a souscrit un écouteur. Je m'explique : lorsqu'on crée une série de menus au sein d'une boucle, on ne souhaite peut-être pas à chaque fois ajouter l'écoute du click sur chacun de ces menus. Pourquoi ?</p>
<p>1 - parce que cela est assez gourmant en performance et en mémoire<br />
2 - parce que pour chaque menu il faudra supprimer l'écoute si besoin</p>
<p>Pour éviter de mettre un écouteur sur chaque menu, il suffit simplement de mettre un écouteur sur le conteneur de ceux-ci. En fait lorsque vous souscrivez un écouteur à un conteneur d'objet lorsque l'événement est diffusé vous avez la possibilité de réupérer l'objet source diffusant l'événement au sein du conteneur. je vous ai fait un joli schéma tout en haut.</p>
<p>Je vous donne également un exemple d'utilisation ici :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> CreateMenu<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
      var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
      <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> menu <span style="color: #0600FF;">in</span> myMenus<span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
            Debug.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>menu<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            var monMenu <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Menu<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008080; font-style: italic;">//monButton.Content = menu;</span>
            monMenu.<span style="color: #0000FF;">Name</span> <span style="color: #008000;">=</span> menu <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;_btn&quot;</span><span style="color: #008000;">;</span>
            monMenu.<span style="color: #0000FF;">Titre</span> <span style="color: #008000;">=</span> menu<span style="color: #008000;">;</span>
            monMenu.<span style="color: #0000FF;">num</span> <span style="color: #008000;">=</span> i<span style="color: #008000;">;</span>
            monMenu.<span style="color: #0000FF;">Height</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">22</span><span style="color: #008000;">;</span>
            monMenu.<span style="color: #0000FF;">Margin</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Thickness<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">10</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            i<span style="color: #008000;">++;</span>
            myStack.<span style="color: #0000FF;">Children</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>monMenu<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">//ici on évite d'écrire la chose en dessous ::</span>
            <span style="color: #008080; font-style: italic;">//monMenu.MouseLeftButtonUp += new MouseButtonEventHandler(monMenu_MouseLeftButtonUp);</span>
&nbsp;
      <span style="color: #000000;">&#125;</span>
&nbsp;
      myStack.<span style="color: #0000FF;">MouseLeftButtonUp</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> MouseButtonEventHandler<span style="color: #000000;">&#40;</span>monMenu_MouseLeftButtonUp<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">void</span> monMenu_MouseLeftButtonUp<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, MouseButtonEventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
      <span style="color: #008080; font-style: italic;">//en premier je teste si je clique bien sur un objet de type Menu</span>
      Debug.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">OriginalSource</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
      <span style="color: #008080; font-style: italic;">//e.OriginalSource renvoie bien l'objet source qui diffuse l'événement</span>
      Debug.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;le nom :: &quot;</span> <span style="color: #008000;">+</span> <span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">OriginalSource</span> <span style="color: #0600FF;">as</span> Menu<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
      <span style="color: #FF0000;">int</span> actualMenu <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>e.<span style="color: #0000FF;">OriginalSource</span> <span style="color: #0600FF;">as</span> Menu<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">num</span><span style="color: #008000;">;</span>
      rubTo.<span style="color: #0000FF;">ContinueTo</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>actualMenu <span style="color: #008000;">*</span> <span style="color: #008000;">-</span><span style="color: #FF0000;">215</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
      rubTween.<span style="color: #0000FF;">Start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Il est à noter qu'il est possible d'arrêter la propagation événementielle dans certains cas cela est vraiment pratique car la propriété MouseChildren n'existe pas à priori en C#. Pour arrêter la propagation événementiel il suffira simplement de faire :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">void</span> monMenu_MouseLeftButtonUp<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, MouseButtonEventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
      <span style="color: #008080; font-style: italic;">//là j'arrête la propagation</span>
      e.<span style="color: #0000FF;">Handled</span> <span style="color: #008000;">=</span> true<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2009/01/23/la-propagation-evenementielle-bubbling-en-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moonlight release</title>
		<link>http://www.tweened.org/fr/2009/01/23/moonlight-release/</link>
		<comments>http://www.tweened.org/fr/2009/01/23/moonlight-release/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 14:14:37 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Tutos Vidéos]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[moonlight]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=192</guid>
		<description><![CDATA[





Le project Moonlight 1 est disponible depuis le 20 janvier au téléchargement. Pour rappel Moonlight est un portage du lecteur Silverlight sur des systèmes non supportés nativement. Ce projet repose sur le framework Mono qui est un portage de .Net sur plusieurs distributions du  système Linux dont MacOS X. Ce projet a trois objectifs [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<div class="mceTemp">
<dl id="attachment_195" class="wp-caption alignnone" style="width: 510px;">
<dt class="wp-caption-dt"><a href="http://www.tweened.org/wp-content/files/times.jpg" title="times" rel="lightbox[192]"><img class="size-full wp-image-195" title="times" src="http://www.tweened.org/wp-content/files/times.jpg" alt="times reader" width="500" height="138" /></a></dt>
</dl>
</div>
<p>Le project Moonlight 1 est disponible depuis le 20 janvier au téléchargement. Pour rappel Moonlight est un portage du lecteur Silverlight sur des systèmes non supportés nativement. Ce projet repose sur le framework Mono qui est un portage de .Net sur plusieurs distributions du  système Linux dont MacOS X. Ce projet a trois objectifs :</p>
<ul>
<li>Donner un environnement de développement Silverlight sur d'autres plate-forme que Windows</li>
<li>Porter le lecteur Silverlight sur Linux</li>
<li>permettre la création d'applications Desktop Silverlight sur linux un peu comme Air.</li>
</ul>
<p>Il est clair que pour un lecteur multi-système comme Silverlight, proposer un environnement de développement autre que Windows pourrait être judicieux. Ainsi l'application du Times ' Reader ressemble comme deux goutte d'eau à une application traditionnelle. Le moteur de texte de Silverlight étant vraiment très performant, celle-ci a été réalisable simplement et l'affichage de pavés de texte animés est fluide et vraiment agréable.vous pouvez la télécharger <a title="download times reader" href="http://reader.nytimes.com/download/TimesReader.pkg.zip" target="_blank">ici</a>.</p>
<p>Il devrait subsister toujours cette période d'un an entre une version de Silverlight et une version de moonlight, voici la roadMap actuelle pour Moonlight 2 :</p>
<table style="font-size: 85%; text-align: center; height: 101px;" border="1" cellspacing="0" cellpadding="5" width="270">
<tbody>
<tr>
<th>versions</th>
<th> Date</th>
</tr>
<tr>
<td align="left">Alpha</td>
<td align="right">18 Mars 2009</td>
</tr>
<tr>
<td align="left">Beta</td>
<td align="right">Mi-Avril 2009</td>
</tr>
<tr>
<td align="left">Final</td>
<td align="right">Septembre 2009</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2009/01/23/moonlight-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser l&#8217;API de Reflection au sein de Silverlight</title>
		<link>http://www.tweened.org/fr/2008/12/09/utiliser-lapi-de-reflection-au-sein-de-silverlight/</link>
		<comments>http://www.tweened.org/fr/2008/12/09/utiliser-lapi-de-reflection-au-sein-de-silverlight/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 15:06:48 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Tutos Docs]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=166</guid>
		<description><![CDATA[
us version

J'ai dernièrement eu besoin de récupérer toutes les méthodes static d'une classe afin d'afficher le résultat visuel de celles-ci. En fait l'idée était d'afficher la courbe correspondante à chaque équation de mouvement contenues dans la classe TweenedEquations. Pour cela il suffit dans le framework Silverlight d'utiliser l'Api de Reflection contenue dans le package System.Reflection. [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper">
<li class="#dtreecatwrapper"><a href="http://www.tweened.org/en/2008/12/09/utiliser-lapi-de-reflection-au-sein-de-silverlight/">us version</a></li>
</ul>
<p>J'ai dernièrement eu besoin de récupérer toutes les méthodes static d'une classe afin d'afficher le résultat visuel de celles-ci. En fait l'idée était d'afficher la courbe correspondante à chaque équation de mouvement contenues dans la classe TweenedEquations. Pour cela il suffit dans le framework Silverlight d'utiliser l'Api de Reflection contenue dans le package <strong>System.Reflection</strong>. Je mets ici en ligne la portion du code que j'ai utilisé afin d'automatiser l'instanciation automatisée d'un UserControl (composant) personnalisé.<span id="more-166"></span></p>
<p>Voici tout d'abord le code logique du contrôle personnalisé :</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Controls</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Documents</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Ink</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Input</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Media</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Media.Animation</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Shapes</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">Tweened</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Diagnostics</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> TweenEquationSlideShow
<span style="color: #000000;">&#123;</span>
	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">partial</span> <span style="color: #FF0000;">class</span> TweenedEquationThumb <span style="color: #008000;">:</span> UserControl
	<span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> Func TweenEquation<span style="color: #008000;">;</span>
        <span style="color: #FF0000;">double</span> EndValue<span style="color: #008000;">;</span>
        <span style="color: #FF0000;">double</span> StartValue<span style="color: #008000;">;</span>
        <span style="color: #FF0000;">double</span> BaseValue<span style="color: #008000;">;</span>
        Tween showTween <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Tween<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> TweenedEquationThumb<span style="color: #000000;">&#40;</span>Func tweenEquation, <span style="color: #FF0000;">double</span> endValue, <span style="color: #FF0000;">double</span> startValue, <span style="color: #FF0000;">double</span> baseValue<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
                <span style="color: #008080; font-style: italic;">// Required to initialize variables</span>
                InitializeComponent<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                TweenEquation <span style="color: #008000;">=</span> tweenEquation<span style="color: #008000;">;</span>
                StartValue <span style="color: #008000;">=</span> startValue<span style="color: #008000;">;</span>
                EndValue <span style="color: #008000;">=</span> endValue<span style="color: #008000;">;</span>
                BaseValue <span style="color: #008000;">=</span> baseValue<span style="color: #008000;">;</span>
                TweenDoubleDescription tdc <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TweenDoubleDescription<span style="color: #000000;">&#40;</span>animPath,         TweenableProperties.<span style="color: #0000FF;">Left</span>, TweenEquation, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">180</span>, <span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                 tdc.<span style="color: #0000FF;">Definition</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">200</span><span style="color: #008000;">;</span>
                showTween.<span style="color: #0000FF;">AddSequences</span><span style="color: #000000;">&#40;</span>tdc<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                showTween.<span style="color: #0000FF;">TweenCompleted</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> Tween.<span style="color: #0000FF;">StoryboardComplete</span><span style="color: #000000;">&#40;</span>showTween_TweenCompleted<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Loaded <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> RoutedEventHandler<span style="color: #000000;">&#40;</span>TweenedEquationThumb_Loaded<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">void</span> showTween_TweenCompleted<span style="color: #000000;">&#40;</span>Tween sender, <span style="color: #FF0000;">object</span> freeReference<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            sender.<span style="color: #0000FF;">Stop</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">void</span> TweenedEquationThumb_Loaded<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, RoutedEventArgs e<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            MouseLeftButtonDown <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> MouseButtonEventHandler<span style="color: #000000;">&#40;</span>TweenedEquationThumb_MouseLeftButtonDown<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            DrawCurve<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">void</span> TweenedEquationThumb_MouseLeftButtonDown<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, MouseButtonEventArgs e<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            showTween.<span style="color: #0000FF;">Start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> DrawCurve<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
&nbsp;
            <span style="color: #FF0000;">double</span> ecart <span style="color: #008000;">=</span> Math.<span style="color: #0000FF;">Round</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span><span style="color: #FF0000;">1</span><span style="color: #008000;">/</span><span style="color: #FF0000;">200</span>, <span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            Debug.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;ecart :: &quot;</span><span style="color: #008000;">+</span>ecart<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> <span style="color: #FF0000;">200</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #FF0000;">double</span> currentTime <span style="color: #008000;">=</span> ecart <span style="color: #008000;">*</span> i<span style="color: #008000;">;</span>
                <span style="color: #FF0000;">double</span> XTimeValue <span style="color: #008000;">=</span> currentTime <span style="color: #008000;">*</span> <span style="color: #FF0000;">180</span><span style="color: #008000;">;</span>
                <span style="color: #FF0000;">double</span> YValue <span style="color: #008000;">=</span> BaseValue <span style="color: #008000;">+</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">double</span><span style="color: #000000;">&#41;</span>Math.<span style="color: #0000FF;">Round</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">TweenEquation</span><span style="color: #000000;">&#40;</span>currentTime, StartValue, EndValue, <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">*</span> <span style="color: #FF0000;">1000</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">/</span> <span style="color: #FF0000;">1000</span><span style="color: #008000;">;</span>
&nbsp;
                Ellipse bulle <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Ellipse<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                bulle.<span style="color: #0000FF;">Width</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">1.2</span><span style="color: #008000;">;</span>
                bulle.<span style="color: #0000FF;">Height</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">1.2</span><span style="color: #008000;">;</span>
                bulle.<span style="color: #0000FF;">Fill</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SolidColorBrush<span style="color: #000000;">&#40;</span>Color.<span style="color: #0000FF;">FromArgb</span><span style="color: #000000;">&#40;</span>0xff, 0xff, 0xff, 0xff<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Curve.<span style="color: #0000FF;">Children</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>bulle<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Canvas.<span style="color: #0000FF;">SetLeft</span><span style="color: #000000;">&#40;</span>bulle, <span style="color: #FF0000;">20</span><span style="color: #008000;">+</span>XTimeValue<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Canvas.<span style="color: #0000FF;">SetTop</span><span style="color: #000000;">&#40;</span>bulle, YValue<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
                EquationName.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> TweenEquation.<span style="color: #0000FF;">Method</span>.<span style="color: #0000FF;">Name</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
     <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Voici maintenant le code logique du côté de la Page.xaml pour instancier ce composant dynamiquement.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">namespace</span> TweenEquationSlideShow
<span style="color: #000000;">&#123;</span>
	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">partial</span> <span style="color: #FF0000;">class</span> Page <span style="color: #008000;">:</span> UserControl
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">public</span> Page<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #008080; font-style: italic;">// Required to initialize variables</span>
			InitializeComponent<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
			Loaded <span style="color: #008000;">+=</span> <span style="color: #008000;">new</span> RoutedEventHandler<span style="color: #000000;">&#40;</span>Page_Loaded<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0600FF;">void</span> Page_Loaded<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, RoutedEventArgs e<span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #008080; font-style: italic;">//dans un premier temps je récupère la classe TweenedEquations en tant que Type</span>
			Type myTypeEq <span style="color: #008000;">=</span> <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span>Tweened.<span style="color: #0000FF;">TweenedEquations</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
			var b <span style="color: #008000;">=</span> true<span style="color: #008000;">;</span>
			<span style="color: #008080; font-style: italic;">//dans un second temps, je parcours les méthodes de ce type</span>
			<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>MemberInfo memberInfo <span style="color: #0600FF;">in</span> myTypeEq.<span style="color: #0000FF;">GetMethods</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
				<span style="color: #008080; font-style: italic;">//si le nom de celles-ci commence par Ease </span>
				<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>memberInfo.<span style="color: #0000FF;">Name</span>.<span style="color: #0000FF;">IndexOf</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Ease&quot;</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">!=</span> <span style="color: #008000;">-</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span>
				<span style="color: #000000;">&#123;</span>
					<span style="color: #008080; font-style: italic;">//alors je récupère la méthode sous forme d'objet MethodInfo</span>
					MethodInfo myMethod <span style="color: #008000;">=</span> myTypeEq.<span style="color: #0000FF;">GetMethod</span><span style="color: #000000;">&#40;</span>memberInfo.<span style="color: #0000FF;">Name</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
					<span style="color: #008080; font-style: italic;">//je crée une nouvelle délégation à partir de cet objet</span>
					var myD <span style="color: #008000;">=</span> <span style="color: #FF0000;">Delegate</span>.<span style="color: #0000FF;">CreateDelegate</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">typeof</span> <span style="color: #000000;">&#40;</span>Func<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">double</span> ,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span><span style="color: #008000;">&gt;</span><span style="color: #000000;">&#41;</span>,myMethod<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
					<span style="color: #008080; font-style: italic;">//cela revient à récupérer la référence de cette fonction, pas à l'appeler</span>
					<span style="color: #008080; font-style: italic;">//j'instancie le UserControl personnalisé en lui passant en premier paramêtre l'équation récupérée dynamiquement</span>
                    			TweenedEquationThumb tetb <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TweenedEquationThumb<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>Func<span style="color: #008000;">&lt;/</span><span style="color: #FF0000;">double</span><span style="color: #008000;">&gt;&lt;</span><span style="color: #FF0000;">double</span> ,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span>,<span style="color: #FF0000;">double</span><span style="color: #008000;">&gt;</span><span style="color: #000000;">&#41;</span>myD, <span style="color: #008000;">-</span><span style="color: #FF0000;">55</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">65</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                    			<span style="color: #008080; font-style: italic;">//par la suite vous pourriez même </span>
                    			<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>b<span style="color: #000000;">&#41;</span> CurveIn.<span style="color: #0000FF;">Children</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>tetb<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> 
                    			<span style="color: #0600FF;">else</span> CurveOut.<span style="color: #0000FF;">Children</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>tetb<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> 
                    			b <span style="color: #008000;">=</span> <span style="color: #008000;">!</span>b
                		<span style="color: #000000;">&#125;</span>
            		<span style="color: #000000;">&#125;</span>
        	<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span><span style="color: #008000;">&lt;/</span><span style="color: #FF0000;">double</span><span style="color: #008000;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2008/12/09/utiliser-lapi-de-reflection-au-sein-de-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VisualStateManager disponible dans Blend 2 SP1 pour les projets WPF</title>
		<link>http://www.tweened.org/fr/2008/12/01/visualstatemanager-disponible-dans-blend-2-sp1-pour-les-projets-wpf/</link>
		<comments>http://www.tweened.org/fr/2008/12/01/visualstatemanager-disponible-dans-blend-2-sp1-pour-les-projets-wpf/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 11:37:07 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.tweened.org/fr/?p=148</guid>
		<description><![CDATA[
us version

 Je relaye cette news car ce serait dommage de la manquer. Jusqu'à maintenant le VisualStateManager était une fonctionnalité propres aux projets Silverlight 2 (vous trouverez une vidéo sur l'utilisation du VisualStateManager en français ici) cependant il est désormais possible de télécharger le WPF ToolKit, celui-ci propose notamment l'intégration du VisualStateManager pour Blend 2. [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper">
<li class="#dtreecatwrapper"><a href="http://www.tweened.org/en/2008/12/01/visualstatemanager-disponible-dans-blend-2-sp1-pour-les-projets-wpf/">us version</a></li>
</ul>
<p><div id="attachment_48" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-48" style="margin-left: 5px; margin-right: 5px;" title="vsm" src="http://www.tweened.org/wp-content/uploads/2008/06/vsm-300x227.png" alt="Visual State Manager" width="300" height="227" /><p class="wp-caption-text">Visual State Manager</p></div> Je relaye cette news car ce serait dommage de la manquer. Jusqu'à maintenant le VisualStateManager était une fonctionnalité propres aux projets Silverlight 2 (vous trouverez une vidéo sur l'utilisation du <a href="http://www.tweened.org/wp-content/uploads/videos/14_advanceVisualStateManager.wmv">VisualStateManager en français ici</a>) cependant il est désormais possible de <a href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598" target="_blank">télécharger le WPF ToolKit</a>, celui-ci propose notamment l'intégration du VisualStateManager pour Blend 2. Pour récupérer pleinement cette fonctionnalité, je vous conseille d'aller voir ce <a href="http://blogs.msdn.com/expression/archive/2008/10/30/blend-2-sp1-wpf-toolkit-visual-state-manager-for-wpf.aspx" target="_blank">site</a>. C'est vraiment un bonne nouvelle qui présage d'une importante évolution pour le futur de Blend. Pour ma part je l'ai essayé et rien à dire sinon que l'intégration n'est pas encore faite au niveau des composants eux-mêmes pour le moment. Biensur le VisualStateManager existe pour n'importe quel USerControl mais il n'est pas réellement implémenter pour les composants ce qui est assez logique. Ainsi vous ne pouvez pas encore gérer les états d'un bouton, Slider ou ListBox via ce Manager comme vous le faites sur Silverlight.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2008/12/01/visualstatemanager-disponible-dans-blend-2-sp1-pour-les-projets-wpf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.tweened.org/wp-content/uploads/videos/14_advanceVisualStateManager.wmv" length="22277647" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Le font manager, la petite révolution wpf</title>
		<link>http://www.tweened.org/fr/2008/04/17/le-font-manager-la-petite-revolution-wpf/</link>
		<comments>http://www.tweened.org/fr/2008/04/17/le-font-manager-la-petite-revolution-wpf/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 07:32:20 +0000</pubDate>
		<dc:creator>Eric Ambrosi</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Blend]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Flash cs4]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[FontManager]]></category>
		<category><![CDATA[gestion des polices]]></category>
		<category><![CDATA[police]]></category>

		<guid isPermaLink="false">http://www.tweened.org/?p=41</guid>
		<description><![CDATA[
Salut &#224; tous,
il n'y a pas si longtemps j'&#233;crivais un article sur comment embarquer des polices au sein de WPF. A l'&#233;poque(1an en arri&#232;re), cela &#233;tait tr&#232;s fastidieux car l'int&#233;grateur devait passer par Visual Studio 2005 pour effectuer cette t&#226;che en g&#233;n&#233;rale r&#233;serv&#233; aux graphistes. Aujourd'hui tout cela est oubli&#233; gr&#226;ce au FontManager : un [...]]]></description>
			<content:encoded><![CDATA[<ul class="#dtreecatwrapper"></ul>
<p>Salut &agrave; tous,</p>
<p>il n'y a pas si longtemps j'&eacute;crivais un article sur comment embarquer des polices au sein de WPF. A l'&eacute;poque(1an en arri&egrave;re), cela &eacute;tait tr&egrave;s fastidieux car l'int&eacute;grateur devait passer par Visual Studio 2005 pour effectuer cette t&acirc;che en g&eacute;n&eacute;rale r&eacute;serv&eacute; aux graphistes. Aujourd'hui tout cela est oubli&eacute; gr&acirc;ce au FontManager : un nouvel onglet directement accessible depuis l'interface de Blend 2. Il vous suffira simplement de s&eacute;lectionner la ou les polices puis de cocher ou d'entrer les glyphes que vous souhaiter embarquer. Voici le petit screenShot de cet outil :<br />
<input vspace="5" type="image" hspace="5" src="http://www.tweened.org/wp-content/uploads/2008/04/fontmanager.jpg" alt="fontManager" longdesc="undefined" /></p>
<p>C'est quand m&ecirc;me une tr&egrave;s bonne nouvelle, franchement WPF est une bonne technologie et prend une bonne tournure. Je suis &eacute;galement Flasheur et &ccedil;a serait bien sympa si la version 10 de Flash (cs4) avait ce genre de petit panneau au lieu de g&eacute;rer &ccedil;a dans des champs textes diff&eacute;rents, vous pensez pas ? On pourrait me r&eacute;pondre que la biblioth&egrave;que de Flash le g&egrave;re... Oui mais non car tous les glyphes de la polices sont embarqu&eacute;s et du coup le poids du swf est &eacute;norme... Quand &agrave; Silverlight peut-&ecirc;tre Blend int&egrave;grera ce panneau pour la version 3 on sait jamais...</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tweened.org/fr/2008/04/17/le-font-manager-la-petite-revolution-wpf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

