この例では、ユーザーが列の位置を変更したときに、ドラッグされた 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>
こちらも参照ください
.NET Desktop feedback