Поделиться через


Как создать стиль для перетаскиваемого заголовка столбца GridView

Обновлен: Ноябрь 2007

Этот пример показывает, как изменить внешний вид перетаскиваемого объекта GridViewColumnHeader, когда пользователь изменяет положение столбца.

Пример

При перетаскивании заголовка столбца в другое местоположение в объекте ListView, который использует GridView для своего режима просмотра, столбец перемещается на новое место. При перетаскивании заголовка столбца, перемещаемая копия заголовка отображается дополнительно к исходному заголовку. Заголовок столбца в объекте GridView представлен объектом GridViewColumnHeader.

Чтобы настроить внешний вид перемещаемого и исходного заголовка, можно задать значение Triggers для изменения Style объекта GridViewColumnHeader. Эти свойства Triggers применяются, когда для свойства IsPressed установлено значение true и для свойства Role — значение Floating.

Когда пользователь нажимает кнопку мыши и удерживает ее, пока указатель мыши находится на объекте GridViewColumnHeader, значение свойства IsPressed меняется на true. Аналогичным образом, когда пользователь начинает операцию перетаскивания, свойство Role изменяется на Floating.

В следующем примере показано, как установить свойство Triggers, чтобы изменить цвета Foreground и Background исходного и перемещаемого заголовков, когда пользователь перетаскивает столбец на новое место.

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

Полный пример см. в разделе Пример ListView с пользовательским плавающим заголовком.

См. также

Основные понятия

Общие сведения об элементе управления ListView

Общие сведения о GridView

Ссылки

GridViewColumnHeader

GridViewColumnHeaderRole

ListView

GridView

Другие ресурсы

Практические руководства, посвященные ListView

Примеры использования ListView