此示例演示如何在用户更改列的位置时更改已拖动的 GridViewColumnHeader 的外观。
示例
将列标题拖动到使用 ListView 作为其视图模式的 GridView 中的另一个位置时,该列将移动到新位置。 拖动列标题时,除了原始标题之外,还会显示该标题的浮动副本。 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>