Compartir a través de


Cómo: Crear un estilo para un encabezado de columna de GridView arrastrado

En este ejemplo se muestra cómo cambiar la apariencia de un control GridViewColumnHeader arrastrado cuando el usuario cambia la posición de una columna.

Ejemplo

Al arrastrar un encabezado de columna hacia otra ubicación en un control ListView que utiliza GridView para el modo de vista, la columna se mueve a la nueva posición. Mientras se arrastra el encabezado de columna, aparece una copia flotante de éste, además del encabezado original. Un encabezado de columna de un control GridView se representa mediante un objeto GridViewColumnHeader.

Para personalizar la apariencia de los encabezados flotante y original, puede establecer Triggers de modo que modifique el valor de Style correspondiente a GridViewColumnHeader. La propiedad Triggers se aplica cuando el valor de la propiedad IsPressed es true y el valor de la propiedad Role es Floating.

Cuando el usuario presiona el botón del mouse y lo mantiene presionado mientras el mouse se detiene en GridViewColumnHeader, el valor de la propiedad IsPressed cambia a true. Igualmente, cuando el usuario comienza la operación de arrastre, la propiedad Role cambia a Floating.

En el ejemplo siguiente se muestra cómo establecer Triggers para cambiar los colores de Foreground y Background de los encabezados original y flotante cuando el usuario arrastra una columna a una nueva posición.

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

Vea también

Referencia

GridViewColumnHeader

GridViewColumnHeaderRole

ListView

GridView

Conceptos

Información general sobre ListView

Información general sobre GridView

Otros recursos

Temas "Cómo..." sobre ListView