Comment : créer un style pour un en-tête de colonne GridView déplacé

Cet exemple montre comment modifier l’apparence d’un glisser GridViewColumnHeader lorsque l’utilisateur modifie la position d’une colonne.

Exemple

Lorsque vous faites glisser un en-tête de colonne vers un autre emplacement dans un ListView mode GridView d’affichage, la colonne passe à la nouvelle position. Pendant que vous faites glisser l’en-tête de colonne, une copie flottante de l’en-tête apparaît en plus de l’en-tête d’origine. Un en-tête de colonne dans un GridView est représenté par un GridViewColumnHeader objet.

Pour personnaliser l’apparence des en-têtes flottants et d’origine, vous pouvez définir Triggers pour modifier le GridViewColumnHeaderStyle. Elles Triggers sont appliquées lorsque la valeur de la IsPressed propriété est true et que la Role valeur de la propriété est Floating.

Lorsque l’utilisateur appuie sur le bouton de la souris et le maintient enfoncé pendant que la souris s’interrompt sur le GridViewColumnHeader, la valeur de la IsPressed propriété passe à true. De même, lorsque l’utilisateur commence l’opération de glissement, la Role propriété passe à Floating.

L’exemple suivant montre comment définir Triggers pour modifier les Foreground couleurs des Background en-têtes d’origine et flottant lorsque l’utilisateur fait glisser une colonne vers une nouvelle position.

<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<ControlTemplate.Triggers>
<Trigger Property="IsPressed"
         Value="true">
  <Setter TargetName="HighlightBorder"
          Property="Visibility"
          Value="Hidden"/>
  <Setter TargetName="PART_HeaderGripper"
          Property="Visibility"
          Value="Hidden"/>
  <Setter Property="Background"
          Value="SkyBlue"/>
  <Setter Property="Foreground"
          Value="Yellow"/>
</Trigger>
<Trigger Property="Role"
         Value="Floating">
  <Setter TargetName="PART_HeaderGripper"
          Property="Visibility"
          Value="Collapsed"/>
  <Setter Property="Background"
          Value="Yellow"/>
  <Setter Property="Foreground"
          Value="SkyBlue"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>

Voir aussi