WPF- هل هناك طريقة لإيقاف TreeViewItems من تحديد وتفعيل عند تحديد TreeViewItem الأصل؟

StackOverflow https://stackoverflow.com/questions/4612142

سؤال

لدي قالب تحكم TreeViewItems وبدلاً من إظهار الطبيعة FocusVisualStyle انا املك MultiTrigger تم إعداد مثل هذا:

<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Property="IsSelected" Value="true"/>
        <Condition Property="IsSelectionActive" Value="true"/>
    </MultiTrigger.Conditions>
    <Setter Property="FontWeight" Value="Bold"/>
</MultiTrigger>

لكن هذا يسبب أيضًا FontWeight للتغيير إلى جريئة عندما أ TreeViewItem's تم تحديد العنصر الأصل. هل هناك أي طريقة يمكنني منع ذلك من الحدوث؟

هل كانت مفيدة؟

المحلول

سؤال عظيم. عليها أن تفعل مع أسبقية قيمة خاصية التبعية.

يحدث هذا لأن عناصر عرض شجرة الطفل لا تتجاوز خاصية الوزن بأي شكل من الأشكال حتى يرثوها من الوالدين البصريين. ما يمكنك فعله هو إضافة مشغل عادي آخر عندما يكون Isselected خطأ.

<Trigger Property="IsSelected" Value="false">
    <Setter Property="FontWeight" Value="Normal" />
</Trigger>
<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Property="IsSelected" Value="true"/>
        <Condition Property="IsSelectionActive" Value="true"/>
    </MultiTrigger.Conditions>
    <Setter Property="FontWeight" Value="Bold"/>
</MultiTrigger>

الآن سيكون لدى Child TreeViewItem خاصية Fontweight الخاصة بها بواسطة تشغيل من شأنه أن يتجاوز الخاصية الموروثة من الوالد المحدد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top