Как создать стиль для перетаскиваемого заголовка столбца 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