1.2 Prérequis Avant de pouvoir développer avec XAML et WinFX, vous devez au préalable installer le Framework .NET 2.0 ainsi qu’une version de Visual Studio 2005.. Vous pourriez utiliser
Trang 21 ère Édition - Septembre 2006
Avertissement Toute représentation ou reproduction, intégrale ou partielle, faite sans le
aux utilisateurs consentement de MICRO APPLICATION est illicite (article L122-4 du code de la
propriété intellectuelle).
Cette représentation ou reproduction illicite, par quelque procédé que ce soit, constituerait une contrefaçon sanctionnée par les articles L335-2 et suivants du code de la propriété intellectuelle.
Le code de la propriété intellectuelle n’autorise aux termes de l’article L122-5 que les reproductions strictement destinées à l’usage privé et non destinées à l’utili- sation collective d’une part, et d’autre part, que les analyses et courtes citations dans un but d’exemple et d’illustration.
Les informations contenues dans cet ouvrage sont données à titre indicatif et n’ont aucun caractère exhaustif voire certain A titre d’exemple non limitatif, cet ouvrage peut vous proposer une ou plusieurs adresses de sites Web qui ne seront plus d’actualité ou dont le contenu aura changé au moment ó vous en prendrez connaissance.
Aussi, ces informations ne sauraient engager la responsabilité de l’Editeur La société MICRO APPLICATION ne pourra être tenue responsable de toute omis- sion, erreur ou lacune qui aurait pu se glisser dans ce produit ainsi que des conséquences, quelles qu’elles soient, qui résulteraient des informations et indications fournies ainsi que de leur utilisation.
Tous les produits cités dans cet ouvrage sont protégés, et les marques déposées par leurs titulaires de droits respectifs Cet ouvrage n’est ni édité, ni produit par le(s) propriétaire(s) de(s) programme(s) sur le(s)quel(s) il porte et les marques ne sont utilisées qu’à seule fin de désignation des produits en tant que noms de ces derniers.
ISBN : 2-7429-6729-X
Couverture réalisée par Room22.
MICRO APPLICATION Support technique 20-22, rue des Petits-Hơtels Également disponible sur
Tél : 01 53 34 20 20 Fax : 01 53 34 20 00 http://www.microapp.com
Retrouvez des informations sur cet ouvrage !
Rendez-vous sur le site Internet de Micro Application
www.microapp.com Dans le module de recherche, sur la page
d’accueil du site, entrez la référence à 4 chiffres indiquée sur le
présent livre Vous accédez directement à sa fiche produit. 7729
Trang 3Le collectionGuide du codeurs’adresse aux personnes initiées à la programmation
qui souhaitent découvrir une technologie particulière Sans négliger les aspects
théoriques, nous donnons toujours priorité à la pratique afin que vous puissiez
rapidement être autonome Avant d’entrer dans le vif du sujet, notez ces quelques
informations générales à propos de la collection
Conventions typographiques
Afin de faciliter la compréhension de techniques décrites, nous avons adopté les
conventions typographiques suivantes :
j gras: menu, commande, boîte de dialogue, bouton, onglet
j italique: zone de texte, liste déroulante, case à cocher, bouton radio
j Police bâton: instruction, listing, texte à saisir
j ➥ : dans les programmes, indique un retour à la ligne dû aux contraintes de la
mise en page
Propose conseils et trucs pratiques.
Met l’accent sur un point important, souvent d’ordre technique qu’il ne faut
négliger à aucun prix.
Donne en quelques lignes la définition d’un terme technique ou d’une
abréviation.
Il s’agit d’informations supplémentaires relatives au sujet traité.
Trang 41 Introduction 11
1.1 Avertissement 12
1.2 Prérequis 12
1.3 Présentation de XAML 13
Qu’est-ce que XAML ? 13
Petits rappels XML 14
Les principes généraux 15
1.4 Utiliser XAMLPad 17
1.5 Checklist 19
2 Fonctionnalités de base 21
2.1 Afficher du texte 22
Avec un Label 22
Avec un TextBlock 30
2.2 Introduire du texte 38
2.3 Créer un bouton 46
2.4 Afficher un cadre 47
2.5 Afficher une image 48
2.6 Checklist 53
3 Disposer les éléments à l’écran 55
3.1 Utiliser les coordonnées 56
3.2 Utiliser une grille 61
3.3 Mettre en page avec un WrapPanel 68
3.4 Utiliser un empilement 70
3.5 Utiliser le docking 72
3.6 Autoriser le défilement 77
3.7 Mélanger les techniques de mise en page 81
3.8 Créer une page composite 88
3.9 Checklist 90
4 Les autres contrôles de base 91
4.1 Créer une liste déroulante 92
4.2 Créer une ComboBox 98
4.3 Créer une case à cocher 100
4.4 Utiliser les boutons radio 102
4.5 Placer des info-bulles 106
4.6 Utiliser les panneaux à onglets 109
Trang 54.7 Créer un bouton automatique 112
4.8 Utiliser un Slider 114
4.9 Utiliser un Expander 118
4.10 Utiliser une ViewBox 121
4.11 Utiliser un Popup 123
4.12 Ajouter de la vidéo dans la fenêtre 126
4.13 Checklist 129
5 Créer une application 131
5.1 Créer une application Windows 132
5.2 Gérer les événements 138
5.3 Héberger une application dans un browser 140
Aperçu de cette technologie 140
La sécurité et les WBA 141
Héberger et exécuter ce type d’application 141
Quand recourir à ce modèle d’application ? 142
Créer une WBA 142
Enchaînement des pages 147
5.4 Les pages fonctions 149
5.5 Créer une application Windows navigable 157
5.6 Les applications avec WPF/E 165
5.7 Checklist 167
6 Les menus 169
6.1 Créer un menu 170
Le menu principal 170
Les sous-menus 171
Rendre un élément du menu inactif 172
Cocher un élément du menu 173
Associer une action à un menu 173
Rendre le menu dynamique 176
6.2 Créer un menu contextuel 178
6.3 Créer une barre d’outils 183
Une barre d’outils statique 183
Un ensemble de barres d’outils 185
6.4 Checklist 189
7 Lier les données à son interface utilisateur 191
7.1 Lier les données à un DataSet 192
Sommaire
Trang 67.2 Lier les données à un objet métier 203
7.3 Lier les données sans utiliser le code NET 207
7.4 Checklist 218
8 Fonctionnalités avancées 219
8.1 Appliquer des transformations sur les contrôles 220
8.2 Créer une ressource 223
8.3 Créer un style 227
Utiliser les triggers 238
Créer une animation 241
8.4 Checklist 247
9 Les documents 249
9.1 Utiliser FixedDocument 250
9.2 Utiliser FlowDocument 254
9.3 Éditer un document 275
9.4 Annoter un document 282
9.5 Checklist 288
10 Les outils graphiques 289
10.1 Le designer de Visual Studio (nom de code CIDER) 290
10.2 Dans la gamme expression 303
Graphic Designer 303
Interactive Designer 306
10.3 Aurora Designer 310
10.4 ZAM 3D 313
10.5 Checklist 314
11 Le dessin 315
11.1 Le dessin en 2D 316
11.2 Le dessin en 3D 323
11.3 Checklist 327
12 Réaliser une application complète 329
12.1 Checklist 349
13 Annexes 351
13.1 XAML sur le Web 352
Trang 713.2 Glossaire 359
13.3 Schéma d’héritage des différentes classes Visual 363
Schéma d’héritage des différentes classes Visual 363
Le détail de l’héritage dans la branche Control 364
Schéma d’héritage des différentes classes ContentElement 366
Schéma d’héritage des différentes classes Freezable 366
13.4 Résumé des classes et des attributs utilisés 368
Classe ArcSegment 368
Classe BezierSegment 368
Classe Border 368
Classe Button 369
Classe Canvas 370
Classe CheckBox 371
Classe ColorAnimation 373
Classe ComboBox 373
Classe DiffuseMaterial 374
Classe DirectionalLight 374
Classe DockPanel 375
Classe DocumentViewer 375
Classe DoubleAnimation 376
Classe DoubleAnimationUsingKeyFrames 376
Classe Ellipse 376
Classe EventTrigger 377
Classe Expander 377
Classe Figure 377
Classe FixedPage 378
Classe FixedDocument 379
Classe Floater 379
Classe FlowDocument 380
Classe GradientStop 380
Classe Grid 380
Classe GridSplitter 381
Classe GridView 382
Classe GridViewColumn 382
Classe Hyperlink 382
Classe Image 383
Classe ImageBrush 383
Classe Label 384
Classe Line 385
Classe LinearGradientBrush 385
Classe LineSegment 385
Classe ListBox 386
Classe ListView 387
Sommaire
Trang 8Classe Menu 387
Classe MenuItem 387
Classe MeshGeometry3D 388
Classe NavigationWindow 388
Classe ObjectDataProvider 389
Classe Page 389
Classe PageContent 390
Classe Paragraph 391
Classe Path 392
Classe PathFigure 392
Classe Pen 392
Classe PerspectiveCamera 393
Classe Polygon 393
Classe Polyline 393
Classe PolylineSegment 393
Classe Popup 394
Classe RadialGradientBrush 394
Classe RadioButton 394
Classe Rectangle 395
Classe RotateTransform 396
Classe RepeatButton 396
Classe ScaleTransform 396
Classe ScrollViewer 396
Classe Section 397
Classe Setter 397
Classe SkewTransform 397
Classe Slider 398
Classe SolidColorBrush 399
Classe SplineDoubleKeyFrame 399
Classe StackPanel 399
Classe StoryBoard 400
Classe Style 400
Classe Table 401
Classe TableCell 401
Classe TableColumn 401
Classe TableRow 401
Classe TabControl 401
Classe TabItem 402
Classe TextBlock 403
Classe TextBox 404
Classe Toolbar 405
Classe ToolbarTray 405
Classe TranslateTransform 406
Trang 9Classe TreeView 406
Classe TreeViewItem 406
Classe Trigger 406
Classe ViewBox 407
Classe Viewport3D 407
Classe Window 408
Classe WrapPanel 409
Classe XmlDataProvider 409
13.5 Classes autorisées dans la zone internet 409
13.6 Liste des touches de raccourcis pour les commandes d’édition 411
13.7 Liste des classes par catégories 413
13.8 Liste des couleurs prédéfinies 415
14 Index 421
Sommaire
Trang 11Avertissement 12
Prérequis 12
Présentation de XAML 13
Utiliser XAMLPad 17
Checklist 19
C h a p i t r e
1
Trang 121.1 Avertissement
Ce livre vous fera découvrir progressivement XAML au moyen d’exemples
Nous partirons des fonctionnalités les plus simples et les plus utiles pour aller
vers des notions un peu plus complexes Toutefois, afin que vous puissiez
facilement revenir par la suite sur une fonctionnalité particulière, les éléments
sont regroupés le plus possible dans des chapitres dédiés À la fin du livre, vous
trouverez un récapitulatif des classes et des attributs utilisés Celui-ci se veut
non pas un référentiel complet mais plutơt un récapitulatif des notions vues
Il s’agit d’une présentation du XAML et non de WinFX C’est pourquoi nous
nous attacherons principalement aux techniques accessibles depuis XAML,
même si à certains moments nous devrons évidemment voir ou réaliser le code
.NET associé
Au moment ó ces lignes ont été écrites, le code XAML et la bibliothèque
WinFX avec laquelle il travaille étaient toujours en version bêta et susceptibles
d’être modifiés Il se peut que certaines fonctionnalités aient entre-temps été
ajoutées ou retirées Comme nous nous intéresserons surtout aux fonctions les
plus courantes, il est probable que le contenu de ce livre respecte les règles en
vigueur dans la version définitive du produit
1.2 Prérequis
Avant de pouvoir développer avec XAML et WinFX, vous devez au préalable
installer le Framework NET 2.0 ainsi qu’une version de Visual Studio 2005
Vous pourriez utiliser n’importe quel éditeur de texte, et ce y compris Notepad,
mais l’utilisation de Visual Studio vous facilitera grandement la vie, que ce soit
pour la création des projets ou la compilation de votre application Il vous
apporte également l’IntelliSense, ce qui est un très gros avantage
Vous devez ensuite installer le kit de développement WinFX Attention,
Windows XP SP2, Windows 2003 ou Windows Vista est requis pour pouvoir
l’installer !
Pour réaliser les exemples, nous utiliserons d’une part "XAMLPad", un petit
utilitaire livré avec le kit de développement et d’autre part "Microsoft Visual
Basic 2005 Express Edition"
Afin de bénéficier de toutes les fonctionnalités dans Visual Studio, vous devez
également installer l’extension pour Visual Studio
L’ensemble de ces éléments sera repris dans le Framework 3.0, dont la sortie est
attendue pour le début de l’année 2007
Trang 131.3 Présentation de XAML
Qu’est-ce que XAML ?
Presentation Fundation(en abrégé, WPF) Cette technologie est accessiblevia
le kit de développement WinFX
WinFX doit remplacer l’ancien API Win32 Évidemment, pour des raisons de
portabilité, l’ancien API sera encore présent dans les futures versions de
Windows, mais jusqu’à quand ? Il a initialement été créé spécifiquement pour
Windows Vista, mais Microsoft a décidé de le rendre disponible pour Windows
XP (SP2) et Windows 2003 WinFX est intimement lié au Framework NET
2.0 L’avantage d’utiliser WinFX par rapport à Win32 est qu’il apporte une
approche vectorielle de l’affichage et offre des possibilités 3D
WinFX sera en définitive inclus dans le Framework 3.0, qui contiendra :
j Windows Communication Fundation ;
j Windows Presentation Fundation ;
j Windows Workflow Fundation ;
j Windows CardSpace ;
j NET Framework 2.0
XAML, quant à lui, est un langage de description fondé sur la norme XML
Contrairement au XML, les noms des balises et leur contenu doivent respecter
une syntaxe stricte et correspondre à une classe de WPF Tout ce qui est fait en
XAML peut également être fait dans du code traditionnel De même, XAML ne
supporte qu’une partie du modèle offert par WPF Il offre en revanche une
beaucoup plus grande lisibilité et une séparation entre le code logique et
l’interface graphique Le XAML va nous permettre de décrire les écrans de
l’application Le reste du traitement se fait de manière traditionnelle, via du
code NET
Dans le cadre de ce guide d’initiation, les parties NET des exemples sont en
Visual Basic NET mais, si vous préférez, vous pouvez bien entendu utiliser du
C# ou n’importe quel autre langage NET L’apprentissage du NET n’est pas
l’objectif de ce guide ; néanmoins, pour une bonne compréhension des
exem-ples, il sera souvent nécessaire de voir aussi bien la partie XAML que la partie
.NET
Afin de mieux comprendre la place de WinFX, de NET et de XAML dans
l’architecture, vous pouvez vous référer au schéma ci-dessous
Présentation de XAML 1
Trang 14Comme vous pouvez le constater, XAML, comme les langages NET, forme la
couche supérieure et représente l’interface avec le développeur En dessous,
nous retrouvons les couches composées de code managé ainsi que la CLR
nécessaire pour l’exécution de ce code La dernière partie est la couche de
communication avec Windows lui-même À noter que WPF est pour sa part
composé effectivement de Presentation Framework, de Presentation Core et de
Milcore
Petits rappels XML
Vous n’avez pas à connaître XML pour utiliser XAML Les quelques notions
nécessaires à la bonne compréhension vont vous être expliquées dans ce
chapitre
Le XML présente les informations de façon structurée et hiérarchique sous
forme de texte
Un fichier XML contient un ou des nœuds dans lesquels s’imbriquent d’autres
nœuds appelés nœuds enfants
Mais qu’est-ce qu’un nœud ?
Un nœud est tout ce qui se trouve entre une balise ouvrante<NomDuNoeud > et
une balise fermante</ NomDuNoeud>
Les attributs sont des informations qui se placent dans la balise ouvrante
<NomDuNoeud MonAttribut= "valeur">
L’attribut est toujours suivi du symbole = et d’une valeur entre guillemets Si
le nœud ne contient que des attributs, la syntaxe autorise de ne pas placer de
balise fermante La balise ouvrante se termine alors par le symbole /
<NomDuNoeud MonAttribut= "valeur" />
Pour commenter du code XML, vous inclurez les commentaires dans une balise
spécifique
<! votre commentaire >
Trang 15Le commentaire peut sans problème s’étendre sur plusieurs lignes.
Les principes généraux
Le principe général est finalement assez simple, chaque balise XAML identifie
une instance d’une classe de la librairie WinFX L’instanciation de cet objet est
effectuée automatiquement Vous ne devez ni le déclarer ni l’instancier avec New
dans votre code NET
Par exemple,
<Window />
permet d’instancier un objet de la classe Window Si vous désirez initialiser une
propriété de la classe, il suffit d’ajouter un attribut dans le nœud XML ou, selon
les cas, de créer un nœud enfant
Exemple :
<Window Title= "Titre" />
Cette balise permet d’assigner la valeur "Titre" à la propriété Titel de la
classe Window Notez que même les propriétés numériques doivent être
assi-gnées comme une chaîne de caractères Pour les valeurs booléennes, vous devez
assigner True ou False entre guillemets
Pour les collections, il s’agit de définir des nœuds enfants Par exemple :
<Window>
<Window.InputBindings>
</Window.InputBindings>
< /Window>
Le langage XAML est sensible à la majuscule
Vous devez respecter l’écriture exacte définie dans la documentation, et cela même si votre projet est en Visual Basic N’écrivez donc pasWINDOWmais bienWindow.
Comme en XAML les noms des attributs des balises XML correspondent aux
noms des propriétés de la classe associée, nous parlerons indistinctement dans
ce livre d’attribut ou de propriété
Présentation de XAML 1
Trang 16Pour mieux comprendre cette notion de correspondance entre XAML et les
langages NET, sachez que les deux bouts de code ci-dessous ont la même
lblNom.Text = "mon nom"
Comme vous pouvez le constater, ce qui est fait en XAML peut parfaitement
être fait en code NET Toutefois, la bonne pratique veut que l’on utilise XAML
pour décrire l’interface et les langages NET traditionnels pour les traitements
Pour une même classe, vous aurez alors vraisemblablement deux fichiers de
sources, un en XAML et l’autre en code NET Les deux seront fusionnés lors
de la compilation
Nous reviendrons sur les différents fichiers automatiquement générés ou non au
cours de ce livre, au fur et à mesure des besoins et de l’explication des
différentes notions Sachez toutefois que du code XAML seul peut déjà être
compris par le système et interprété sans même devoir utiliser un compilateur
C’est par ce genre de code que nous allons commencer
XAML contient malgré tout quelques petites subtilités que nous allons détailler
Tout d’abord, le code XAML doit contenir un élément root comme le veut
XML, mais cet élément doit être un élément faisant partie du modèle
d’application comme Window ou Page ou encore un conteneur tel Grid ou
StackPanel Nous reviendrons ultérieurement sur la notion de conteneur et
d’éléments d’application Cet élément root doit contenir comme attribut la
déclaration de deux Namespaces au minimum Cette déclaration se fait en
utilisant l’attribut classique xmlns
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
S’il est nécessaire de faire référence à d’autresnamespaces, il sera nécessaire
d’ajouter d’autres attributs xmlns en respectant la syntaxe ci-dessous
Trang 17xmlns:nom="clr-namespace:nom du namespace;assembly=nom de l’assembly"
L’assemblypeut être omis si lenamespaceest contenu dans le mêmeassembly
x:Name Cet attribut a la même fonction que l’attributName, qui est
généralement présent Ils sont totalement interchangeablesmais ne peuvent être utilisés simultanément PréférezNameà
x:Nameet limitez l’usage de ce dernier aux objets qui nedisposent pas de la propriétéName
x:Key Est encore un moyen de donner un nom mais, typiquement,
ce type de nommage est utilisé pour nommer des ressources
Il ne s’agit en aucun cas du même usage quex:Name
x:Class Attribut placé dans l’élémentroot; il fait le lien avec la
classe définie dans lecode behind(.NET)
x:ClassModifier Permet de spécifier d’autres modifieurs quepartialet
public, qui sont les valeurs par défaut
x:Null Pour définir une valeur nulle à une propriété
x:Code Permet d’introduire du code NET dans le fichier XAML Il
sera généralement utilisé en conjonction avecCDATA:
<x:Code> <![CDATA[ Code … ]] > </x:Code>
x:Static Pour accéder à une valeur statique d’une classe
x:Type Dans XAML, il a le même effet queTypeOfdans le code
.NET
x:TypeArgument Pour déterminer le type des arguments qui doivent être reçus
Cet attribut est principalement utilisé parPageFunction
x:Array Permet d’instancier unarraycomme valeur d’un attribut
Toutefois, il n’est pas possible de remplir cetarraydans lecode XAML
Ces différentes notions seront abordées par l’exemple dans la suite de ce livre
1.4 Utiliser XAMLPad
L’utilitaire XAMLPad est très simple d’emploi et permet de visualiser très
rapidement du code XAML Il est toutefois limité au XAML statique C’est
pour cette raison que certains exemples seront réalisés avec Visual Studio
Utiliser XAMLPad 1
Trang 18XamlPad se présente comme une fenêtre en deux parties La partie supérieure
affiche le résultat du code et la partie inférieure, le code lui-même
En résumé, vous tapez le code en bas, il affiche le résultat en haut C’est aussi
simple que cela
Pour faciliter la vision, vous disposez de quelques options :
j Auto Parse, qui est activée par défaut et traite en temps réel votre code
XAML Ainsi, vous constatez directement l’impact de vos changements
Long code source
Si votre code est long, vous pouvez désactiver l’option AutoParse Cela vous
évitera de désagréables effets de rafraîchissement.
j Refresh N’est vraiment utile que si l’Auto Parseest désactivée
j L’icône d’imprimante, qui imprime le résultat mais pas le code
Avec les autres options de la barre d’outils, vous pouvez changer la police
utilisée pour le code, choisir de cacher temporairement le code ou encore faire
un zoom de la fenêtre d’affichage du résultat
Consultez la barre de statut, elle vous donne de précieux renseignements sur
votre code en cours de frappe
m Figure 1-1 : L’outil XAMLPad livré avec le kit de développement
Trang 19Il est dommage que l’IntelliSense ne soit pas disponible dans cet utilitaire Si
vous désirez en disposer, vous pouvez reproduire les exemples dans Visual
Studio Mais vous devrez alors préalablement créer un projet spécifique et
demander chaque fois l’exécution pour visualiser le résultat
Renvoi
Vous pouvez vous reporter au chapitre Créer une application
1.5 Checklist
Les notions essentielles que nous avons vues dans ce premier chapitre sont :
j le matériel nécessaire pour débuter en programmation XAML ;
j les bases du XML ;
j comment fonctionne XAML ;
j comment utiliser l’outil XAMLPad
Checklist 1
Trang 21de base
Afficher du texte 22
Introduire du texte 38
Créer un bouton 46
Afficher un cadre 47
Afficher une image 48
Checklist 53
C h a p i t r e
2
Trang 22Dans ce chapitre, nous allons voir de manière individuelle les différents
éléments de base nécessaires à la réalisation d’une interface utilisateur Cela
nous permettra d’aborder l’affichage et la saisie de texte, l’affichage d’une
image et l’utilisation d’un bouton Avec ce minimum de connaissance, nous
pourrons ensuite passer à l’étape suivante, qui sera le placement des éléments
C’est seulement après que nous aborderons les autres contrôles classiquement
utilisés Dans le but de grouper les fonctionnalités, nous ne nous contenterons
pas de survoler ces fonctionnalités mais les verrons assez en profondeur
2.1 Afficher du texte
XAML offre deux possibilités de base pour l’affichage de texte Dans ce
chapitre, nous verrons les deux méthodes et découvrirons les avantages de l’une
et de l’autre Nous découvrirons en même temps de nombreuses possibilités qui
pourront être exploitées avec la majorité des contrôles
Le premier des contrôles est de loin le plus connu puisqu’il s’agit du Label,
l’autre est le TextBlock, que nous allons découvrir ensemble
Avec un Label
Le Label est probablement le contrôle le plus utilisé Il reste très simple à
manipuler mais, comme vous allez le constater, il nous réserve d’agréables
Ne vous souciez pas pour l’instant des balises Page et StackPanel Nous verrons
ultérieurement à quoi elles servent et comment les utiliser Sachez seulement
que, sans la balise Page ou une autre balise racine valide, vous ne pourrez
visualiser le résultat La balise StackPanel sert de conteneur
Renvoi
Nous reviendrons sur les conteneurs dans le chapitre Disposer les éléments à l’écran sur la mise en page (page 56).
Trang 23Dans la suite, ces balises ne seront plus systématiquement reprises au sein des
exemples mais elles devront évidemment être présentes
Au lieu de placer le code entre la balise de début et la balise de fin du nœud
Label, vous pouvez également opter pour assigner l’attribut Content Le résultat
sera le même
La syntaxe devient alors :
<Label Content="Mon premier label."/>
Portée des explications
Les attributs que nous allons voir dans cette partie seront également utilisables pour les autres contrôles que nous aborderons ultérieurement.
Comme beaucoup de contrôles, le Label occupe un espace rectangulaire Nous
pouvons nous en rendre compte en affichant un bord autour de notre contrôle
<Label BorderBrush="Chocolate" BorderThickness="1">
Mon premier label
</Label>
Les deux attributs sont nécessaires car aucune couleur n’est définie par défaut
et la taille est de zéro
b Figure 2-1 : Une
simple étiquette
Afficher du texte 2
Trang 24La taille occupée dépend de divers paramètres comme la taille de la fenêtre.
Si vous souhaitez contrôler la taille de cette zone, vous pouvez utiliser les
attributs Width et Height Dans l’exemple, nous allons fixer la taille à 200 pixels
de large sur 60 pixels de haut
<Label BorderBrush="Chocolate" BorderThickness="1"
b Figure 2-3 : La
taille d’une étiquette
Trang 25Notez au passage que par défaut le contrôle est centré horizontalement.
Ce n’est pas le seul moyen de contrôler la taille du Label XAML met
également à notre disposition les attributs MinWidth, MinHeight, MaxWidth et
MaxHeight
Avec ces attributs, vous laissez la taille s’adapter à l’environnement tout en
fixant des valeurs limites
<Label BorderBrush="Chocolate" BorderThickness="1"
MinWidth="100" MinHeight="30"
MaxWidth="300" MaxHeight="80">
Mon premier label
</Label>
Si la position du texte ne vous convient pas, vous avez l’opportunité de
modifier l’alignement horizontal et vertical Vous pouvez utiliser les attributs
Afficher du texte 2