Jak utworzyć styl dla przeciągniętego nagłówka kolumny GridView

W tym przykładzie pokazano, jak zmienić wygląd przeciągniętego GridViewColumnHeader obiektu, gdy użytkownik zmieni położenie kolumny.

Przykład

Gdy przeciągniesz nagłówek kolumny do innej lokalizacji używanej ListViewGridView w trybie wyświetlania, kolumna zostanie przeniesiona do nowej pozycji. Podczas przeciągania nagłówka kolumny oprócz oryginalnego nagłówka pojawia się zmienna kopia nagłówka. Nagłówek kolumny w obiekcie GridView jest reprezentowany GridViewColumnHeader przez obiekt.

Aby dostosować wygląd przestawnych i oryginalnych nagłówków, możesz ustawić wartość Triggers , aby zmodyfikować element GridViewColumnHeaderStyle. Są one Triggers stosowane, gdy IsPressed wartość właściwości to true , a Role wartość właściwości to Floating.

Gdy użytkownik naciśnie przycisk myszy i przytrzymuje go w dół, gdy mysz wstrzymuje się na GridViewColumnHeader, IsPressed wartość właściwości zmieni się na true. Podobnie, gdy użytkownik rozpocznie operację przeciągania, Role właściwość zmieni się na Floating.

W poniższym przykładzie pokazano, jak ustawić Triggers , aby zmienić Foreground kolory i Background oryginalnych i przestawnych nagłówków, gdy użytkownik przeciągnie kolumnę do nowej pozycji.

<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>

Zobacz też