次の方法で共有


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

この例からは、ユーザーが列の位置を変更するとき、ドラッグした 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>

関連項目