> Tech > Le temps des ajustements de programmes

Le temps des ajustements de programmes

Tech - Par Renaud ROSSET - Publié le 23 décembre 2011
email


Traditionnellement, les programmes s’ajustaient automatiquement à différentes plates-formes au moyen de directives de préprocesseur pour la compilation conditionnelle. Un programme Silverlight définit le symbole de compilation conditionnelle SILVERLIGHT et un programme Windows Phone 7 spécifie à la fois SILVERLIGHT et PHONE. (Vous pouvez les voir en sélectionnant

l’onglet Build dans la page des propriétés du projet.) En d’autres termes, vous pouvez avoir du code similaire à ce qui suit :

#if PHONE
// Code for Windows Phone 7
#else
// Code for regular Silverlight
#endif

Il est également possible de différencier au moment de l’exécution en accédant à l’objet Environment.OSVersion. Si la propriété Platform est PlatformID.WinCE et si la propriété Version.Major a la valeur 7 ou supérieure, votre code va s’exécuter sur un périphérique Windows Phone 7 (ou peut-être Windows Phone 8 ou 9).

En théorie, il est possible de définir des sections conditionnelles de fichiers XAML en utilisant les balises AlternateContent et Choice définies dans l’espace de nom markup-compatibility (mc), mais ces balises ne semblent pas être gérées dans Silverlight.

Néanmoins, XAML peut contenir des liaisons de données, lesquelles liaisons peuvent référencer différents objets selon la plate-forme. Il est aussi possible pour XAML d’avoir des références StaticResource qui récupèrent différents projets pour de multiples plates-formes. C’est l’approche que j’ai employée dans le programme TextTransform. J’ai créé la solution TextTransform de la même manière que pour la solution DragImage. Elle comporte trois projets : TextTransform (programme Silverlight), TextTransform.Web (projet Web d’hébergement du programme Silverlight) et TextTransform.Phone (pour Windows Phone 7).

Dans le projet Silverlight, j’ai ensuite créé un contrôle TextTransformer dérivé de UserControl. Ce contrôle est partagé entre le projet Silverlight et le projet Windows Phone 7. Le contrôle TextTransformer contient une chaîne de texte codée en dur (le terme « TEXT ») délimitée par une bordure (Border) avec un contrôle Thumb à chacun des quatre coins. Le déplacement d’un contrôle Thumb provoque l’application d’une transformée non affine à Border et TextBlock. (Cela fonctionne correctement uniquement si le quadrilatère formé par la bordure n’a pas de coins concaves.)

Le fichier TextTransformer.xaml ne crée pas de nouveau modèle pour le contrôle Thumb, mais il définit un style, comme illustré sur la figure 4.

Notez les références à ThumbSize et HalfThumbOffset. Bien que TextBlock, qui affiche le texte, obtienne la propriété Foreground appropriée via l’héritage de propriétés, Border doit être coloré explicitement avec la même couleur d’avant-plan :

< Border Name= »border »
BorderBrush= »{StaticResource ForegroundBrush} »
BorderThickness= »1″>

Où ces ressources sont-elles définies ? Elles le sont dans App.xaml. Le projet Silverlight classique inclut dans son fichier App.xaml file une collection Resources contenant ce qui suit :

< Application.Resources>
< SolidColorBrush x:Key= »BackgroundBrush » Color= »White » />
< SolidColorBrush x:Key= »ForegroundBrush » Color= »Black » />
< system:Double x:Key= »ThumbSize »>36
< system:Double x:Key= »HalfThumbOffset »>-18
< /Application.Resources>

Le fichier App.xaml pour le programme Windows Phone 7 référence les ressources prédéfinies pour les deux palettes et spécifie des valeurs plus larges pour ThumbSize et HalfThumbOffset :

< Application.Resources>
< SolidColorBrush x:Key= »BackgroundBrush »
Color= »{StaticResource PhoneBackgroundColor} » />
< SolidColorBrush x:Key= »ForegroundBrush »
Color= »{StaticResource PhoneForegroundColor} » />
< system:Double x:Key= »ThumbSize »>96
< system:Double x:Key= »HalfThumbOffset »>-48
< /system:Double>
< /Application.Resources>

La figure 5 affiche le programme s’exécutant dans le navigateur et la figure 6 présente le programme fonctionnant dans l’émulateur Windows Phone 7. Ce dernier est affiché à 50 pour cent de sa taille complète afin de compenser la plus forte densité de pixels sur le téléphone.

Ces techniques suggèrent que le partage de code entre le poste de travail et le téléphone est devenu une réalité.

Si vous souhaitez approfondir un peu plus le sujet, le Surface Toolkit for Windows Touch inclut un contrôle SurfaceThumb pour les développeurs WPF. Il est équivalent au contrôle Thumb normal, mais il ajoute la prise en charge de la véritable fonction multi-tactile et des événements pour le tapotement avec le pouce. Pour plus d’informations, consultez la page bêta Surface Toolkit for Windows Touch beta à l’adresse msdn.microsoft.com/library/ee957351.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 23 décembre 2011