2009-09-02 35 views
6

Hi Vấn đề đang gặp là tôi có nhiều điều khiển TreeView và mỗi TreeView có phong cách TreeViewItem riêng của mình, đặt nóÁp dụng phong cách cho tất cả TreeViewItem

TreeView ItemContainerStyle = "{StaticResource Style1}"

sẽ chỉ thiết lập các phần tử gốc KHÔNG tất cả các phần tử con, Làm thế nào để áp dụng một phong cách cho tất cả các phần tử con trong một TreeView

Trả lời

18

có một số cách để thực hiện điều này:

Bạn có thể làm cho phong cách của bạn mặc định cho tất cả TreeViewItems:

<Style TargetType="{x:Type TreeViewItem}"> 
... 
</Style> 

Sự khác biệt là bạn không đặt x: attribute Key, nhưng bạn thiết lập các thuộc tính TargetType. Bạn không cần phải đặt ItemContainerStyle trên TreeView của bạn trong trường hợp này.


Bạn cũng có thể thiết lập phong cách của bạn như phong cách mặc định cho tất cả TreeViewItems, nhưng chỉ trong TreeView của bạn:

<TreeView> 
    <TreeView.Resources> 
     <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/> 
    </TreeView.Resources> 
</TreeView> 

Trong trường hợp này bạn cũng không cần phải thiết lập các ItemContainerStyle trên TreeView của bạn.


Bạn cũng có thể thay đổi phong cách của bạn như sau

<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}"> 
    <Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/> 
</Style> 

Trong trường hợp này bạn vẫn sẽ phải thiết lập các ItemContainerStyle trên TreeView của bạn.

+0

Tôi nghĩ rằng nó đáng nói đến về DataTemplates. Ai biết được, có lẽ Chandimal muốn thay đổi nội dung của TreeViewItem, không phải là kiểu container, nhưng không nhận ra điều này ... Chỉ là một ý nghĩ :). – Anvaka

+0

Cảm ơn !, Đây là những gì tôi đang tìm kiếm !. Nó về việc thay đổi màu nền/lựa chọn vv – Chandimal

Các vấn đề liên quan