1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu XAML- P3 docx

50 213 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 1,67 MB

Nội dung

L’attribut IsChecked reçoit une valeur booléenne qui indique si par défaut la case est cochée ou non. Si vous ne souhaitez pas que la case soit cochée par défaut, vous pouvez bien sûr omettre tout simplement cet attribut. Parfois, vous aurez besoin d’une case à cocher autorisant l’état indéterminé. C’est l’attribut IsThreeState qui va autoriser ce comportement. <CheckBox Name="chkDispo" Margin="5,5,2,2" IsThreeState="True" > Disponible en semaine </CheckBox > Si vous souhaitez utiliser ce contrôle uniquement pour afficher une information mais que vous ne souhaitiez pas que l’utilisateur puisse modifier l’état de la case à cocher, vous devez ici encore utiliser obligatoirement l’attribut IsEna- bled . <CheckBox Name="chkDispo" Margin="5,5,2,2" IsEnabled="False" IsChecked="True" Content="Disponible en semaine" /> b Figure 4-12 : Une case à cocher dans l’état indéterminé Créer une case à cocher 4 Le guide du codeur • 101 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. L’attribut Content Dans ce dernier exemple, le texte est assigné à l’attribut Content au lieu de le placer dans le nœud. Le résultat est identique, c’est une question de goût personnel. 4.4 Utiliser les boutons radio Le contrôle RadioButton est un autre moyen de faire un choix dans une liste. La syntaxe pour ajouter un bouton radio est fort simple. <RadioButton Name="rbUse" IsChecked="True"> J’utilise XAML </RadioButton> Comme pour la case à cocher, nous retrouvons l’attribut IsChecked.Àla différence de la case à cocher, les boutons radio sont associés les uns aux autres. Ce qui fait que, quand vous sélectionnez un bouton radio, les autres sont automatiquement désélectionnés. <RadioButton Name="rbUseVB" IsChecked="True"> J’utilise VB.NET </RadioButton> <RadioButton Name="rbUseCSharp"> b Figure 4-13 : Une case à cocher désactivée 4 Les autres contrôles de base 102 • Le guide du codeur Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. J’utilise C# </RadioButton> <RadioButton Name="rbUsedelphi"> J’utilise Delphi.NET </RadioButton> Si vous désirez avoir dans un même écran plusieurs listes de boutons radio indépendantes les unes des autres, vous devez les intégrer dans un ensemble. Dans les versions précédentes, nous aurions dû utiliser une RadioButtonList mais elle n’est actuellement plus disponible en XAML. Pour regrouper des boutons radio dans des ensembles différents, le moyen le plus simple est de leur ajouter un attribut GroupName. Assignez la même valeur à cet attribut pour tous les boutons radio devant être associés. <RadioButton Name="rbUseVB" IsChecked="True" GroupName="grpLanguage"> J’utilise VB.NET </RadioButton> <RadioButton Name="rbUseCSharp" GroupName="grpLanguage"> J’utilise C# </RadioButton> <RadioButton Name="rbUsedelphi" GroupName="grpLanguage"> J’utilise Delphi.NET </RadioButton> <RadioButton Name="rbUse10" GroupName="grpFramework"> J’utilise le Framework 1.0 </RadioButton> <RadioButton Name="rbUse11" IsChecked="True" b Figure 4-14 : Utiliser des boutons radio Utiliser les boutons radio 4 Le guide du codeur • 103 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. GroupName="grpFramework"> J’utilise le Framework 1.1 </RadioButton> <RadioButton Name="rbUse20" GroupName="grpFramework"> J’utilise le Framework 2.0 </RadioButton> Une autre solution consiste à utiliser un contrôle conteneur séparé pour chaque liste de boutons radio. Dans l’exemple ci-dessous, nous utiliserons deux StackPanel supplémentaires. C’est pourquoi, pour cet exemple, le code complet vous est à nouveau présenté. <Page xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <StackPanel> <StackPanel> <RadioButton Name="rbUseVB" IsChecked="True"> J’utilise VB.NET </RadioButton > <RadioButton Name="rbUseCSharp"> J’utilise C# </RadioButton > <RadioButton Name="rbUsedelphi"> J’utilise Delphi.NET </RadioButton > </StackPanel> <StackPanel> b Figure 4-15 : Utiliser des boutons radio 4 Les autres contrôles de base 104 • Le guide du codeur Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. <RadioButton Name="rbUse10"> J’utilise le Framework 1.0 </RadioButton > <RadioButton Name="rbUse11" IsChecked="True"> J’utilise le Framework 1.1 </RadioButton > <RadioButton Name="rbUse20"> J’utilise le Framework 2.0 </RadioButton > </StackPanel> </StackPanel> </Page> Le résultat est identique à la méthode précédente. Toutefois, l’utilisation d’une méthode ou d’une autre peut influencer la mise en page. Liste de choix non modifiable Pour rendre une liste de choix non modifiable, vous devez utiliser l’attribut IsEnabled. Celui-ci doit être appliqué sur chaque bouton radio. Toutefois, si elle est incluse dans un conteneur qui lui est spécifique, vous pouvez spécifier l’attribut IsEnabled dans le conteneur. Cette façon de faire est bien plus pratique à bien des égards. Normalement, il devrait être possible d’utiliser un contrôle de type GroupBox au lieu d’un Canvas. Toutefois, dans la version bêta utilisée au moment d’écrire ces lignes, cette possibilité n’était pas supportée. Le contrôle GroupBox existe bel et bien mais ne supporte qu’un enfant et ne permet dès lors pas de regrouper les boutons radio. Son utilisation se limite à l’affichage du traditionnel contour. Son utilité reste malgré tout évidente pour rendre votre interface claire et bien compréhensible pour l’utilisateur. <Page xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel> <GroupBox BorderThickness="1" BorderBrush="Black" Header="Language" Width="150"> <StackPanel > <RadioButton Name="rbUseVB" IsChecked="True"> J’utilise VB.NET </RadioButton > <RadioButton Name="rbUseCSharp"> J’utilise C# </RadioButton > Utiliser les boutons radio 4 Le guide du codeur • 105 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. <RadioButton Name="rbUsedelphi"> J’utilise Delphi.NET </RadioButton > </StackPanel > </GroupBox > <GroupBox BorderThickness="1" BorderBrush="Black" Header="Framework" Width="150"> <StackPanel > <RadioButton Name="rbUse10"> J’utilise le Framework 1.0 </RadioButton > <RadioButton Name="rbUse11" IsChecked="True"> J’utilise le Framework 1.1 </RadioButton > <RadioButton Name="rbUse20"> J’utilise le Framework 2.0 </RadioButton > </StackPanel > </GroupBox > </StackPanel> </Page> Notez au passage l’utilisation de l’attribut Header pour indiquer le titre de votre GroupBox. 4.5 Placer des info-bulles Bien que, contrairement aux contrôles vus précédemment, la bulle d’informa- tion ne puisse exister sans un autre contrôle, une place privilégiée a été réservée à cette fonctionnalité car les bulles d’information sont souvent trop peu utilisées b Figure 4-16 : Utilisation d’un GroupBox 4 Les autres contrôles de base 106 • Le guide du codeur Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. en dehors des programmes commerciaux. Pourtant, elles apportent un réel plus à votre développement et, surtout, elles évitent pas mal d’incompréhension et de confusion pour l’utilisateur de votre interface. Pour des questions de place à l’écran, les étiquettes précédant les différents champs de saisie ou de choix sont généralement fortement résumées et très peu explicites. Les bulles d’information sont là pour pallier ce manque et constituent le premier niveau d’aide. Pour réaliser une telle bulle, vous devez utiliser l’attribut ToolTip du contrôle auquel la bulle d’information doit être associée. À titre d’exemple, nous allons associer une bulle d’information à une boîte de saisie de texte. <TextBox Name="txtNom" Margin="3,3,3,3" ToolTip="Dans ce champ vous devez introduire le nom de famille de votre contact." /> Cette façon de faire est toutefois limitée à la présentation sur une seule ligne. Pour améliorer notre info-bulle, nous devons utiliser une syntaxe légèrement plus compliquée en la définissant comme un nœud fils. <TextBox Name="txtNom" Margin="3,3,3,3"> <TextBox.ToolTip> <TextBlock MaxWidth="200" TextWrapping="WrapWithOverflow" > Dans ce champ vous devez introduire le nom de famille de votre contact. </TextBlock > </TextBox.ToolTip> </TextBox> b Figure 4-17 : Une info-bulle Placer des info-bulles 4 Le guide du codeur • 107 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. De cette façon, le texte d’information est alors inclus dans un bloc de texte, ce qui permet d’ajuster les attributs d’affichage pour obtenir le résultat souhaité. Dans l’exemple, la taille de la bulle est limitée à 150 pixels et le texte passe automatiquement à la ligne en étendant la zone autant que nécessaire. Outre le passage à la ligne, cette façon d’aborder le problème offre également la possibilité d’enrichir la présentation du contenu. <TextBox Name="txtNom" Margin="3,3,3,3"> <TextBox.ToolTip> <TextBlock MaxWidth="200" TextWrapping="WrapWithOverflow" > <Image Width="16" Height="16"> <Image.Source > C:\Windows\Microsoft.NET\Windows\ v6.0.5070\Avalon\avalonArp.ico </Image.Source > </Image > Dans ce champ vous devez introduire le <Bold >nom</Bold> de <Underline>famille </Underline > de votre contact. </TextBlock > </TextBox.ToolTip> </TextBox> b Figure 4-18 : Une info-bulle sur plusieurs lignes 4 Les autres contrôles de base 108 • Le guide du codeur Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. 4.6 Utiliser les panneaux à onglets Une dernière façon de réaliser une mise en page est d’utiliser un panneau à onglets. <Page xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <TabControl MinWidth="300" MinHeight="300"> <TabItem Header="Photo1"> <Image Source="C:\Documents and Settings\ All Users\Documents\Mes images\ Échantillons d’images\Collines.jpg" /> </TabItem > <TabItem Header="Photo2"> <Image Source="C:\Documents and Settings\ All Users\Documents\Mes images\ Échantillons d’images\ Coucher de soleil.jpg" /> </TabItem > <TabItem Header="Photo3"> <Image Source="C:\Documents and Settings\ All Users\Documents\Mes images\ Échantillons d’images\Hiver.jpg" /> </TabItem > <TabItem Header="Photo4"> <Image Source="C:\Documents and Settings\ All Users\Documents\Mes images\ b Figure 4-19 : Gras et italique dans une info-bulle Utiliser les panneaux à onglets 4 Le guide du codeur • 109 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. Échantillons d’images\Nénuphars.jpg" /> </TabItem > </TabControl> </Page> Bien qu’il représente une surface, le TabControl est plus proche des contrôles de type TextBox que du Canvas, par exemple. En effet, chaque nœud TabItem ne peut avoir qu’un seul enfant. Renvoi Pour pallier ce problème, la solution est très simple et revient à appliquer les règles qui sont vues dans le chapitre Mélanger les techniques de mise en page (voir page 81). Ajoutez ce TabItem à notre code précédent. <TabItem Header="Miniatures" IsSelected="True"> <Grid > <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> b Figure 4-20 : Utilisation des onglets 4 Les autres contrôles de base 110 • Le guide du codeur Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.

Ngày đăng: 21/01/2014, 13:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w