كيفية القيام بما يلي: إنشاء نمط لرأس العمود المسحوب

يوضح هذا المثال كيفية تغيير مظهر GridViewColumnHeader المسحوب عندما يقوم المستخدم بتغيير موضع العمود.

مثال

عند سحب رأس العمود إلي موقع آخر في ListView الذي يستخدم GridView لوضع العرض الخاص به, يتحرك العمود إلي الموضع الجديد. بينما تقوم بسحب رأس العمود تظهر نسخة عائمة من الرأس بالإضافة إلى الرأس الأصلي. رأس عمود في GridView يتم تمثيله بكائن GridViewColumnHeader.

لتخصيص مظهر لكلاً من الرؤوس العائمة و الأصلية، يمكنك تعيين Triggers لتعديل GridViewColumnHeader Style. هذه 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>

راجع أيضًا:

المرجع

GridViewColumnHeader

GridViewColumnHeaderRole

ListView

GridView

المبادئ

نظرة عامة على ListView

نظرة عامة حول GridView

موارد أخرى

مواضيع إجرائية لل ListView