2009-05-18 36 views
6

Tôi có một số lần xem trang trong WPF. Tôi muốn một màu khác khi tôi chọn treeviewitem.Làm cách nào để đánh dấu một mục được chọn bằng treeview với một số màu?

+5

Tôi nghĩ rằng đây là nhiều hơn hoặc ít hơn một bản sao của http://stackoverflow.com/questions/388232/ ... cùng một mẹo tôi đã sử dụng trong câu trả lời đó sẽ áp dụng cho TreeView. –

+0

@MattHamilton và hevgen đều chính xác. Sử dụng mẫu mã trong liên kết của Matt. Nó hoạt động tốt với TreeViews. OP, vui lòng chấp nhận câu trả lời. – Heliac

Trả lời

-1

Hãy thử mã sau. Nó sẽ hoạt động.

<Style TargetType="{x:Type TreeViewItem}"> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Yellow"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
9

kích hoạt đơn giản trong TreeView.ItemContainerStyle không thể giúp cho mẫu TreeView mặc định.

Để đánh dấu tiêu bản mẫu được thực hiện thông qua thay đổi nền cho phần tử cụ thể bên trong mẫu TreeView. Phần tử cụ thể này không thể truy cập được đối với lập trình viên mà không thay đổi mẫu TreeView. Theo tài nguyên mặc định được sử dụng để đặt nền trên phần tử này để tô sáng.

Vì vậy, có vài cách:

  1. đơn giản (nhưng tác dụng phụ có thể): xác định lại nguồn với phím {x: Static SystemColors.HighlightBrushKey} cho TreeView hoặc ItemsPanel mẫu;
  2. Xác định lại mẫu hoàn chỉnh cho TreeView.
Các vấn đề liên quan