Conseils de conception de styles pour le contrôle Slider des contrôles Silverlight dans Blend
Vous pouvez utiliser le modèle de contrôle Slider intégré pour créer un modèle Slider personnalisé. Par défaut, le modèle du contrôle Slider se présente comme suit :
Parties d’un modèle Slider
Le modèle Slider comprend deux jeux de parties : un jeu pour curseur vertical et un jeu pour curseur horizontal. Les noms de parties sont précédés du mot « vertical » ou « horizontal », selon l’orientation du curseur.
Conseil
Pour afficher les parties du modèle, ouvrez le panneau Parties lorsque vous modifiez le modèle.
Nom de la partie |
Type d’objet |
---|---|
HorizontalTemplate VerticalTemplate |
FrameworkElement |
HorizontalTrackLargeChangeDecreaseRepeatButton VerticalTrackLargeChangeDecreaseRepeatButton |
RepeatButton |
HorizontalThumb VerticalThumb |
Thumb |
HorizontalTrackLargeChangeIncreaseRepeatButton VerticalTrackLargeChangeIncreaseRepeatButton |
RepeatButton |
Conseils sur le curseur
Partie Template
Cette partie est obligatoire. La partie template contient tous les éléments qui composent le Slider dans une orientation particulière.
Pour créer une partie template, créez une grille nommée HorizontalTemplate ou VerticalTemplate qui contient trois colonnes (pour l’orientation horizontale) ou trois lignes (pour l’orientation verticale) dont le dimensionnement est défini sur Auto, Auto et Étoile.
Partie Curseur
Cette partie est obligatoire. Le curseur de position est l’élément mobile dans le curseur.
Pour transformer l’objet ou les objets qui représentent le curseur en contrôle Thumb (HorizontalThumb ou VerticalThumb), placez la partie Thumb dans la colonne (ou ligne) centrale de la partie Root. Ensuite, définissez les propriétés Width et Height de la partie Thumb afin que la colonne (ou ligne) soit redimensionnée en fonction du curseur.
Track
L’espace dans lequel le curseur de déplace se nomme le track. Le track n’est pas une partie et est facultatif.
Pour inclure un track, placez le objet ou les objets représentant le track dans la partie Template couvrant les trois colonnes (ou lignes).
Déplacement du curseur le long du track par grands incréments
Pour que l’utilisateur puisse cliquer sur le track de chaque côté du curseur pour déplacer ce dernier par grands incréments, placez un contrôle RepeatButton dans les deux colonnes (ou lignes) de chaque côté de la partie Thumb et nommez-les VerticalLargeDecrease et VerticalLargeIncrease (ou HorizontalLargeDecrease et HorizontalLargeIncrease). Pour que les contrôles RepeatButton fonctionnent mais soient invisibles, attribuez-leur une Opacity nulle. Vous pouvez également appliquer un modèle qui contient un seul objet avec une Opacity nulle aux contrôles RepeatButton.
États d’un contrôle Slider
Par défaut, le contrôle Slider peut se trouver dans l’un des trois états suivants dans le groupe d’états CommonStates qui est visible dans le panneau États lors de la modification d’un modèle Slider :
Nom de l’état |
Description |
---|---|
Normal |
Aspect du contrôle Slider en l’absence d’interaction avec ce dernier. |
MouseOver |
Aspect du contrôle Slider lorsque l’utilisateur place le pointeur dessus. |
Disabled |
Aspect du contrôle Slider lorsque la propriété IsEnabled est définie sur la valeur False. |
Le contrôle Slider peut être dans l’un des deux états suivants du groupe d’états FocusStates :
Nom de l’état |
Description |
---|---|
Unfocused |
Aspect du contrôle Slider lorsqu’il ne possède pas le focus clavier. |
Focused |
Aspect du contrôle Slider lorsqu’il possède le focus clavier. Un utilisateur pourrait, par exemple, appuyer sur la touche Tabulation pour parcourir en séquence les objets d’une application jusqu’à ce que le focus clavier soit sur le contrôle Slider. |
Conseil
Un groupe d’états contient les états visuels qui appartiennent à une même catégorie logique et ne peuvent pas être affichés simultanément.Le groupe CommonStates, par exemple, comprend des états qui se rapportent à une interaction utilisateur avec un périphérique d’entrée tel que la souris.Un seul état d’un groupe d’états peut être affiché à la fois, mais un état d’un groupe peut être affiché en même temps qu’un état d’un autre groupe d’états.
Lorsque vous sélectionnez un état, l’enregistrement de l’état est activé et toutes les modifications que vous effectuez sont enregistrées pour cet état. Pour désactiver l’enregistrement de l’état, cliquez sur le bouton d’enregistrement , ou choisissez Base dans le panneau Etats. Pour modifier l’apparence de votre contrôle lorsque deux états distincts sont actifs, vous pouvez épingler un aperçu d’un état dans un groupe d’états pendant que vous modifiez un état dans un autre groupe d’états.
Liaison de modèle
Vous pouvez lier par modèle les propriétés Background, BorderBrush, Foreground, BorderThickness ou Padding. Pour plus d'informations, consultez Véhiculer des propriétés d'objet vers le modèle dans Blend.
Pour convertir des objets en contrôle Slider
L’image suivante est une conception complète (comp) d’un curseur créé par un concepteur qui inclut les états MouseOver et Pressed de la partie HorizontalThumb.
Normal
MouseOver
Pressed
Disabled
Cet exemple utilise le code XAML dans l’étape 2 de la procédure suivante, qui correspond aux graphiques précédents pour créer une barre de défilement personnalisée à l’aide du modèle de contrôle Slider.
Conseil
Cliquez sur Mode fractionné pour afficher les modifications en modes Création et Code lorsque vous suivez cette procédure.
En mode Code, recherchez le code suivant, puis supprimez la barre oblique de fermeture (/).
<Grid x:Name="LayoutRoot" Background="White"/>
Copiez et collez ensuite le code suivant dans votre nouveau projet, après le code que vous avez localisé à l’étape 1.
<Grid Width="146" Height="17" > <Rectangle x:Name="track" Fill="#FF3D3D3D" StrokeThickness="0" Margin="0,6" /> <Rectangle x:Name="thumb" Fill="Gray" RadiusX="3" RadiusY="3" Width="7"/> </Grid>
Ajoutez une balise de fermeture Grid (</Grid>) après le code que vous venez de coller.
Dans le panneau Objets et chronologie, cliquez avec le bouton droit sur Grid, puis cliquez sur Créer un contrôle. Dans la boîte de dialogue Créer un contrôle, cliquez sur Curseur, puis cliquez sur OK.
En mode Code, notez que le code que vous avez collé à l’étape précédente a été remplacé par celui pour un nouveau Curseur. En outre, Blend a transformé Grid en modèle pour un nouveau style de Slider et l’a appliqué à Grid.
Pour ajouter des colonnes à la grille de partie Template, en mode Création, cliquez sur la règle bleue et déplacez là sur la gauche du contrôle pour ajouter de nouvelles lignes comme illustré dans l’image suivante :
Si vous ajoutez les lignes comme indiqué, les parties figureront dans les lignes appropriées. Track a un ColumnSpan de 3, et thumb se situe dans Column 1.
Notes
La numérotation commence à 0. Les 3 colonnes sont donc numérotées de 0 à 2.
Pour transformer la racine du modèle en partie HorizontalTemplate, dans le panneau Objets et chronologie, cliquez avec le bouton droit sur Grille, cliquez sur Créer une partie de curseur, puis cliquez sur HorizontalTemplate. Veuillez noter que Grid a été renommé HorizontalTemplate.
Dans le panneau Objets et chronologie, cliquez avec le bouton droit sur thumb, puis cliquez sur Créer une partie de curseur puis cliquez sur HorizontalThumb.
Pour ajouter des états à la partie HorizontalThumb, effectuez les opérations suivantes :
Dans le panneau Objets et chronologie, cliquez sur Curseur.
Dans le panneau États, cliquez sur MouseOver.
Dans le panneau Propriétés, définissez Remplir sur #FFCCCCCC.
Revenez au panneau États, puis cliquez sur Base pour arrêter l’enregistrement de l’état.
Notes
Mettez également fin à l’enregistrement de l’état en cliquant sur Indicateur du mode d’enregistrement dans l’angle supérieur gauche de la fenêtre du document.
Cliquez avec le bouton droit sur MouseOver dans le panneau États, cliquez sur Copier l’état vers, puis cliquez sur Pressed.
Pour créer le décalage, avec l’état Pressed sélectionné dans le panneau États, dans la catégorie Transformer dans le panneau Propriétés, définissez X et Y sur 1. Cliquez sur Base pour arrêter l’enregistrement de l’état.
Dans le panneau États, cliquez sur Normal. Cliquez sur Ajouter la transition, puis cliquez sur Normal à MouseOver. Définissez Durée de transition sur 0,2. Cliquez sur Base pour arrêter l’enregistrement de l’état.
Revenez au mode d’édition de modèle pour le contrôle Slider [SliderStyle1 (modèle Slider)] en cliquant sur Rétablir l’étendue à dans le panneau Objets et chronologie.
Dans le panneau Objets et chronologie, cliquez sur HorizontalThumb. Dans la catégorie Disposition du panneau Propriétés, cliquez sur Options avancées en regard de Margin puis cliquez sur Réinitialiser.
Dans le panneau Objets et chronologie, cliquez sur HorizontalTemplate. Dans le panneau Parties, double-cliquez sur HorizontalTrackLargeChangeDecreaseRepeatButton pour créer cette partie et en faire un enfant de HorizontalTemplate. Dans la catégorie Apparence du panneau Propriétés, définissez Opacité sur 0.
Dans le panneau Objets et chronologie, cliquez sur HorizontalTemplate. Dans le panneau Parties, double-cliquez sur HorizontalTrackLargeChangeIncreaseRepeatButton pour créer cette partie et en faire un enfant de HorizontalTemplate. Dans la catégorie Apparence du panneau Propriétés, définissez Opacité sur 0.
Pour les colonnes 0 et 1, cliquez sur l’icône Étoile deux fois jusqu'à ce que l'icône Automatique icon apparaisse. Pour la colonne 2, assurez-vous que l’icône Étoile s’affiche. Cliquez sur le séparateur de la colonne du milieu, puis, dans le panneau Propriétés, cliquez sur Afficher les propriétés avancées. À droite de la valeur MinHeight, cliquez sur Options avancées, puis cliquez sur Réinitialiser.
Dans le panneau Objets et chronologie, cliquez sur HorizontalTemplate. Dans le panneau États, cliquez sur Disabled. Dans la catégorie Apparence du panneau Propriétés, définissez Opacité sur 50.
Générez votre projet en appuyant sur Ctrl+Shift+B. Une fois la génération terminée, exécutez votre projet en appuyant sur F5, puis testez votre barre de défilement.
Références
Vous trouverez des informations détaillées sur les propriétés et événements du contrôle Slider de Silverlight dans la Galerie de contrôles Silverlight sur MSDN.
Voir aussi
Tâches
Lier un objet à la saisie utilisateur ou à d'autres valeurs internes
Concepts
Conseils de conception de styles pour les contrôles Silverlight courants dans Blend