此示例演示如何在用户更改列的位置时更改拖动 GridViewColumnHeader 的外观。
示例:
将列标题拖动到使用GridView作为其视图模式的ListView中的另一位置时,该列会移动到新位置。 拖动列标题时,除了原始标题之外,还会显示标题的浮动副本。 中的 GridView 列标题由 GridViewColumnHeader 对象表示。
若要自定义浮动标头和原始标头的外观,您可以设置Triggers来修改GridViewColumnHeaderStyle。 这些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>