Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

SimpleComboBox et SimpleComboBoxItem (prise en charge de WPF dans Blend)

Cette page s’applique uniquement aux projets WPF

La zone de liste déroulante est un contrôle d’éléments sous la forme d’une liste déroulante. Vous pouvez placer du contenu dans une zone de liste déroulante dans Blend for Visual Studio en double-cliquant sur la zone de liste déroulante et en y faisant glisser un élément (tel que SimpleComboBoxItem). Vous pouvez également cliquer avec le bouton droit sur la zone de liste déroulante dans le panneau Objets et chronologie, puis cliquer sur Ajouter SimpleComboBoxItem pour ajouter des éléments individuels à la collection, ou cliquer sur Lier ItemsSource aux données pour générer la collection d’objets ComboBoxItem à partir d’une source de données. Pour afficher la zone de liste déroulante sur la planche graphique alors qu’elle est développée, vous pouvez cliquer avec le bouton droit sur la zone de liste déroulante ou l’élément de zone de liste déroulante dans le panneau Objets et chronologie, puis cliquer sur Développer ComboBox.



Affichage de planche graphique d’un contrôle SimpleComboBox après l’ajout de deux éléments

JJ170884.25309636-8547-4686-a578-9aa914190f01(fr-fr,VS.120).png

Le modèle de contrôle SimpleComboBox est composé des éléments suivants :

  • Un panneau Grid , qui sert à contenir plusieurs enfants dans la zone de liste déroulante. La Grid est également utilisée pour permettre à un concepteur d’interface utilisateur d’application d’ajouter plus facilement des objets au modèle.

  • Un élément ContentPresenter nommé ContentSite , qui est contenu dans la Grid et qui est utilisé pour afficher l’élément sélectionné.

  • Une zone de texte nommée PART_EditableTextBox , qui est contenue dans la Grid et qui permet à l’utilisateur de modifier du texte dans la zone de liste déroulante. Comme le nom PART_EditableTextBox est utilisé par la classe pour localiser la zone de texte, vous ne devez pas le modifier. Par défaut, la zone de texte est réduite et rendue visible lorsque IsEditable a la valeur True sur la zone de liste déroulante à laquelle ce modèle de contrôle est appliqué.

  • Un contrôle de bouton bascule Popup, qui est utilisé pour créer la partie d’expansion de la zone de liste déroulante. Le contrôle Popup peut se positionner par rapport aux autres contrôles et s’affiche au-dessus de tout autre contenu. Ce contrôle prend également en charge certaines animations intégrées.

  • Un contrôle Popup comporte un contrôle Grid contenant un élément ScrollViewer permettant le défilement de la liste d’éléments. L’objet StackPanel dans l’élément ScrollViewer positionne chaque élément. La propriété IsItemsHost de l’objet StackPanel a la valeur True afin que le contrôle de zone de liste déroulante puisse positionner les objets enfants à l’intérieur de l’objet StackPanel. Si vous souhaitez changer le mode d’affichage de vos éléments, vous pouvez remplacer ce panneau de disposition en cliquant avec le bouton droit sur la grille déroulante dans le panneau Objets et chronologie, puis en choisissant Modifier le type de disposition et en sélectionnant un autre panneau tel que UniformGrid.

Le modèle de contrôle SimpleComboBoxItem est composé des éléments suivants :

  • Un panneau Grid , qui sert à contenir plusieurs enfants dans l’élément de zone de liste déroulante. Une Grid est aussi utilisée pour permettre à un concepteur d’ajouter plus facilement des objets au modèle.

  • Un élément Border , qui est utilisé parce qu’il inclut une propriété BorderThickness pouvant être liée par modèle à la propriété BorderThickness du contrôle de bouton auquel ce modèle est appliqué.

  • Un élément ContentPresenter , qui est contenu dans l’objet Grid et qui est automatiquement lié à la propriété Content du contrôle d’éléments auquel ce modèle est appliqué.

Des déclencheurs de propriété dans le modèle de contrôle sont utilisés pour que le contrôle réagisse aux changements de propriétés. Vous pouvez cliquer sur les éléments du panneau Déclencheurs pour voir les propriétés qui changent lorsqu'un déclencheur est actif. Par exemple, dans le modèle pour la zone de liste déroulante, lorsque la propriété HasItems a la valeur False, la hauteur minimale de l’objet DropDownBorder est réglée à 95 et une fenêtre déroulante vide apparaît lors d’un clic dans la zone de liste déroulante. Si la hauteur minimale a été réglée à 0, une toute petite fenêtre déroulante apparaît. Dans le modèle de l’élément de la zone de liste déroulante, lorsque la propriété IsHighlighted a la valeur True, la propriété Background de l’objet Border change pour indiquer quel élément est sélectionné dans la zone de liste déroulante.

Les ressources pinceau suivantes dans le dictionnaire de ressources SimpleStyles.xaml sont utilisées par les modèles SimpleComboBox et SimpleComboBoxItem :

  • La propriété Background de l’objet DropDownBorder est définie à l’aide de l’objet WindowBackgroundBrush.

  • La propriété BorderBrush de l’objet DropDownBorder est définie à l’aide de l’objet SolidBorderBrush.

  • La propriété Foreground est définie à l’aide de l’élément DisabledForegroundBrush lorsque IsEnabled a la valeur False.

  • Si le modèle SimpleComboBox est rempli avec des éléments qui utilisent le modèle SimpleComboBoxItem, la propriété Background de l’élément est définie à l’aide de SelectedBackgroundBrush lorsqu’un élément est sélectionné, et la propriété Foreground est définie à l’aide de DisabledForegroundBrush si IsEnabled a la valeur False.

  • En général, utilisez un contrôle Grid comme racine de votre modèle si vous prévoyez qu'un concepteur ajoute d'autres éléments visuels à votre contrôle. Blend cherche un panneau de disposition comme le contrôle Grid et le rend actif par défaut pour que les nouveaux objets qui sont ajoutés à la planche graphique se retrouvent en tant qu'objets enfants du panneau de disposition.

  • Le développement de la zone de liste déroulante est défini en liant la propriété IsChecked du contrôle ToggleButton et la propriété IsOpen du contrôle Popup à la propriété IsDropDownOpen de la zone de liste déroulante auquel ce modèle de contrôle est appliqué. Si vous modifiez l’élément ToggleButton ou l’élément Pop-up, vous devez vous assurer de bien maintenir cette liaison de modèle.

  • L’objet ToggleButton utilise un modèle distinct nommé ToggleButtonControlTemplate. Pour modifier cet aspect, cliquez avec le bouton droit sur l’objet ToggleButton, pointez sur Modifier le modèle, puis cliquez sur Modifier le modèle actif.

  • Pour modifier le modèle SimpleComboBoxItem, cliquez sur le bouton Modifier la ressource en regard du style SimpleComboBoxItem dans le panneau Ressources. Dans le mode d’édition du style, cliquez avec le bouton droit sur Style dans le panneau Objets et chronologie, pointez sur Modifier le modèle, puis cliquez sur Modifier l’élément actuel. Si vous modifiez le modèle SimpleComboBoxItem, vous pouvez conserver ou modifier le déclencheur IsHighlighted.

Afficher: