Gewusst wie: Erstellen eines Stils für einen gezogenen GridView-Spaltenheader
In diesem Beispiel wird gezeigt, wie Sie die Darstellung einer gezogenen GridViewColumnHeader-Instanz ändern, wenn der Benutzer die Position einer Spalte ändert.
Beispiel
Wenn Sie eine Spaltenüberschrift an eine andere Stelle in einem ListView ziehen, der GridView für seinen Ansichtsmodus verwendet, wird die Spalte an die neue Position verschoben. Während Sie die Spaltenüberschrift ziehen, wird eine abgedockte Kopie der Überschrift zusätzlich zur ursprünglichen Überschrift angezeigt. Eine Spaltenüberschrift in einem GridView wird durch ein GridViewColumnHeader-Objekt dargestellt.
Um die Darstellung sowohl der unverankerten als auch der ursprünglichen Überschrift anzupassen, können Sie Triggers festlegen, um GridViewColumnHeaderStyle zu ändern. Diese Triggers werden angewendet, wenn der IsPressed-Eigenschaftswert true
und der Role-Eigenschaftswert Floating ist.
Wenn der Benutzer die Maustaste drückt und gedrückt hält, während die Maus auf dem GridViewColumnHeader-Steuerelement verweilt, ändert sich der Wert der IsPressed-Eigenschaft in true
. Wenn der Benutzer den Ziehvorgang beginnt, ändert sich die Role-Eigenschaft in Floating.
Im folgenden Beispiel wird gezeigt, wie Sie Triggers so festlegen, dass sich die Farben Foreground und Background der ursprünglichen und der abgedockten Überschriften ändern, wenn der Benutzer eine Spalte an eine neue Position zieht.
<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>
Weitere Informationen
.NET Desktop feedback