Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
1,95 MB
Nội dung
ImageBrush dispose d’attributs tout à fait particuliers pour gérer l’apparence de
l’image. Il n’est pas question de taille puisque celle-ci dépend du conteneur. En
revanche, il est toutefois possible de contrôler la taille relative en utilisant
l’attribut
Viewport. Si vous l’associez à TileMode, vous pouvez par exemple
créer une mosaïque.
<Page
xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Page.Background
>
<ImageBrush
Viewport="0.5,0.5,0.5,0.5"
TileMode="TILE"
ImageSource="…\Emoticons\no.gif" />
</Page.Background
>
<StackPanel
>
<Label
>
Une fenêtre avec une image de fond
</Label
>
</StackPanel
>
</Page
>
b Figure 2-31 :
Afficher une image
comme fond de page
Afficher une image 2
Le guide du codeur • 51
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Il est aussi possible de paramétrer l’étirement de l’image et son alignement en
utilisant les attributs
Stretch, AlignmentX.et AlignmentY.
<Page
xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Page.Background
>
<ImageBrush
Stretch="None"
AlignmentY="Bottom"
AlignmentX="Right"
ImageSource="…\Emoticons\no.gif" />
</Page.Background
>
<StackPanel
>
<Label
>
Une fenêtre avec une image de fond
</Label
>
</StackPanel
>
</Page
>
b Figure 2-32 :
Afficher une mosaïque
comme fond de page
2 Fonctionnalités de base
52 • Le guide du codeur
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
2.6 Checklist
Voici les points essentiels que nous avons abordés dans ce chapitre :
j
l’affichage des textes et leurs manipulations avec des Label et TextBlock ;
j
l’affichage et la saisie des textes avec TextBox ;
j
la saisie d’un mot de passe avec PasswordBox ;
j
l’affichage des boutons avec Button ;
j
l’affichage des images avec Image et ImageBrush ;
j
la réalisation de cadres avec Border ;
j
l’utilisation des attributs les plus communs et utilisables avec la majorité
des contrôles ;
j
l’utilisation des décorateurs avec TextDecoration.
b Figure 2-33 :
Afficher une image
non étirée
Checklist 2
Le guide du codeur • 53
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Disposer
les éléments
à l’écran
Utiliser les coordonnées 56
Utiliser une grille 61
Mettre en page avec un WrapPanel 68
Utiliser un empilement 70
Utiliser le docking 72
Autoriser le défilement 77
Mélanger les techniques de mise en page 81
Créer une page composite 88
Checklist 90
Chapitre
3
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Avec les contrôles vus au chapitre précédent, nous possédons assez d’éléments
pour réaliser un écran complet et complexe. Ce qui nous manque maintenant,
c’est une méthode pour organiser tout cela. XAML ne se contente pas d’une
méthode mais nous en fournit plusieurs, chacune ayant ses avantages et ses
inconvénients.
3.1 Utiliser les coordonnées
L’utilisation de Canvas est la méthode la plus proche de la technique utilisée
avec les anciens API. Si vous avez déjà programmé sous Windows, vous savez
certainement que les contrôles étaient positionnés relativement au coin supé-
rieur gauche de la fenêtre. Pour positionner les contrôles dans un
Canvas, c’est
pareil.
Comme premier exemple, plaçons dans un écran des étiquettes et des boîtes de
texte pour pouvoir introduire le nom, le prénom et l’adresse d’une personne.
<Page
xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Canvas
>
<Label
Name="lblNom" Canvas.Top="10"
Canvas.Left="10">
Nom
</Label
>
<TextBox
Name="txtNom" Canvas.Top="10"
Canvas.Left="80"
Width="150" MaxLength="30"
CharacterCasing="Upper" />
<Label
Name="lblPrenom" Canvas.Top="10"
Canvas.Left="240">
Prénom
</Label
>
<TextBox
Name="txtPrenom" Canvas.Top="10"
Canvas.Left="300"
Width="130" MaxLength="30"/>
<Label
Name="lblAdr" Canvas.Top="40"
Canvas.Left="10">
Rue
</Label
>
<TextBox
Name="txtAdr" Canvas.Top="40"
Canvas.Left="80"
Width="350" MaxLength="80"/>
<Label
Name="lblCP" Canvas.Top="70"
Canvas.Left="10">
Code postal
</Label
>
3 Disposer les éléments à l’écran
56 • Le guide du codeur
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
<TextBox
Name="txtCP" Canvas.Top="70"
Canvas.Left="80"
Width="50" MaxLength="5"/>
<Label
Name="lblLocalite" Canvas.Top="70"
Canvas.Left="150">
Localité
</Label
>
<TextBox
Name="txtLocalite" Canvas.Top="70"
Canvas.Left="200"
Width="230" MaxLength="50"/>
</Canvas
>
</Page
>
Comme vous pouvez le constater, le placement à l’écran se fait au moyen des
attributs
Canvas.Top et Canvas.Left. Il s’agit de propriétés attachées. Une
propriété attachée est en fait une propriété du parent, ici du
Canvas, mais pour
laquelle chaque enfant peut assigner une valeur différente. C’est pourquoi, bien
que propriété de
Canvas, l’attribut Canvas.Top est par exemple un attribut des
éléments contenus dans le
Canvas et non du Canvas lui-même.
La balise
Canvas dispose elle-même de quelques attributs.
L’attribut
Background vous permet de changer la couleur du fond si la couleur
standard ne vous satisfait pas.
<Canvas
Background="LightCoral">
b Figure 3-1 :
Présentation avec un
Canvas
Utiliser les coordonnées 3
Le guide du codeur • 57
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Un autre attribut intéressant est l’attribut IsEnabled. En effet, si vous lui
assignez la valeur
False, l’ensemble des contrôles contenus dans le Canvas
seront eux aussi désactivés.
Désactivé et non lecture seule
N’oubliez pas toutefois les différences que nous avons vues précédemment
entre désactiver et lecture seule pour un contrôle tel que la boîte de texte.
<Canvas
IsEnabled="False" Background="LightCoral">
b Figure 3-2 : La
couleur du fond d’un
Canvas
b Figure 3-3 : Un
Canvas désactivé
3 Disposer les éléments à l’écran
58 • Le guide du codeur
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Les attributs Canvas.Top et Canvas.Left ne sont pas les seuls utilisables pour
positionner un contrôle. Vous pouvez également utiliser
Canvas.Right et
Canvas.Bottom, ce qui permet de placer un contrôle relativement à n’importe
quel coin du
Canvas.
Ajoutons le code suivant devant la balise de fin du nœud
Canvas.
<Border
Width="100" Height="120" BorderThickness="1"
Background="White" BorderBrush="Black"
Canvas.Top="10" Canvas.Right="10">
<TextBlock
Name="blkPhoto"
VerticalAlignment="Center"
HorizontalAlignment="Center"
FontSize="20">
Photo
</TextBlock>
</Border>
<Label
Name="lblCopyright" Canvas.Bottom="10"
Canvas.Right="10"
Content="Micro Application 2006" />
b Figure 3-4 : Un
Canvas avec
différents points de
référence
Utiliser les coordonnées 3
Le guide du codeur • 59
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Comme vous pouvez le constater, le fait de positionner un contrôle non pas à
partir du coin supérieur gauche mais d’un autre coin ne fait pas que changer le
système de coordonnées. Lors du redimensionnement de l’écran, les contrôles
suivent le coin à partir duquel ils sont positionnés. Cette faculté pourra être
utilisée dans de nombreuses circonstances pour obtenir un écran beaucoup plus
flexible.
Fixer une taille minimale à son Canvas
Si vous ne fixez pas une taille minimale à votre
Canvas, les éléments contenus
vont inévitablement se chevaucher si la fenêtre est réduite au-delà de la taille
critique.
En remplaçant la balise Canvas dans l’exemple par celle ci-dessous, nous
empêcherons ce comportement chaotique.
<Canvas
Background="LightBlue"
MinWidth="550"
MinHeight="200">
b Figure 3-5 : Le
même Canvas agrandi
3 Disposer les éléments à l’écran
60 • Le guide du codeur
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
[...]... xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > . 61
Mettre en page avec un WrapPanel 68
Utiliser un empilement 70
Utiliser le docking 72
Autoriser le défilement 77
Mélanger les techniques de mise en page