次の方法で共有


方法 : ドラッグされた GridView 列ヘッダーのスタイルを作成する

更新 : 2007 年 11 月

この例では、ユーザーが列の位置を変更したときに、ドラッグされた GridViewColumnHeader の外観を変更する方法を示します。

使用例

表示モードに GridView を使用する ListView で列ヘッダーを別の場所にドラッグすると、その列が新しい位置に移動します。列ヘッダーをドラッグしている間、元のヘッダーとは別に、そのコピーであるフローティング ヘッダーが表示されます。GridView の列ヘッダーは、GridViewColumnHeader オブジェクトで表されます。

フローティング ヘッダーと元のヘッダーの外観をカスタマイズするには、Triggers を設定して GridViewColumnHeader Style を変更します。これらの Triggers は、IsPressed プロパティ値が true で、Role プロパティ値が Floating の場合に適用されます。

GridViewColumnHeader の上にマウス ポインタがある間にユーザーがマウス ボタンを押して、そのまま押し続けると、IsPressed プロパティ値は true に変更されます。同様に、ユーザーがドラッグ操作を開始すると、Role プロパティは Floating に変更されます。

Triggers を設定して、ユーザーが列を新しい位置にドラッグしているときに、元のヘッダーとフローティング ヘッダーの ForegroundBackground の色を変更する方法を次の例に示します。

<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>

For the complete sample, see カスタム フローティング ヘッダーを持つ ListView のサンプル.

参照

概念

ListView の概要

GridView の概要

参照

GridViewColumnHeader

GridViewColumnHeaderRole

ListView

GridView

その他の技術情報

ListView に関する「方法」トピック

ListView のサンプル