2009-07-15 39 views
6

Tôi cần phải thay đổi con trỏ của một TreeViewItem trong trình kích hoạt. Mã này hoạt động cho tất cả các tài sản khác nhưng không con trỏ:Trình kích hoạt WPF để thay đổi Con trỏ

<Style.Triggers> 
    <MultiTrigger> 
    <MultiTrigger.Conditions> 
     <Condition Property="QuickPhrases:TreeViewChecker.IsMouseDirectlyOverItem"  
        Value="True"> 
     </Condition> 
     <Condition Property="CanSelect" Value="True"></Condition> 
     </MultiTrigger.Conditions> 
     <Setter Property="BorderThickness" Value="0,0,0,1" /> 
     <Setter Property="BorderBrush" Value="Blue" /> 
     <Setter Property="Cursor" Value="Hand"></Setter> 
     <Setter Property="Foreground" Value="Blue"></Setter> 
    </MultiTrigger> 
</Style.Triggers> 

gì mang lại cho, và cũng có thể, làm thế nào để tôi làm điều đó một cách chính xác?

Trả lời

4

Bạn đang làm đúng, nó chỉ hoạt động. Trên thực tế, tôi không thể tạo lại vấn đề của bạn qua các bước sau:

  • Tạo dự án mới qua VS 2008 C# trình hướng dẫn ứng dụng WPF.
    • dẫn đến App.xaml và Window1.XAML
  • Added một TreeView tiêu chuẩn từ hộp công cụ để Window1.
  • Đã thêm 2 TreeViewItems '1' và '2'.
  • Đã thêm Kiểu với TargetType="TreeViewItem".
  • Đã dán đoạn mã của bạn, nhưng đã sửa đổi các điều kiện thành nội dung nào đó trong khóa học.

Vâng, đây chỉ là làm việc tốt, ví dụ: một lần lơ lửng trên một TreeViewItem con trỏ được kích hoạt để bất cứ điều gì giá trị tôi đã chọn trong kích hoạt, có thể là 'tay' hoặc 'Đợi' hoặc khác.

Một chi tiết quan trọng mặc dù: con trỏ chỉ xuất hiện trong khi lơ lửng ngay trên tiêu đề, ví dụ: không toàn bộ hàng (điều này là phù hợp với hành vi hàng WPF TreeViewItem dù, xem here cho một ví dụ liên quan về làm nổi bật hàng). Đặc biệt là con trỏ không không xuất hiện khi tiêu đề TeeViewItem rỗng! Bạn đã cung cấp bất kỳ dữ liệu nào cho tiêu đề chưa?

Nếu không, chúng phải là điều kỳ lạ xảy ra đằng sau hậu trường trong dự án/môi trường của bạn? Bạn đã thử một trường hợp repro đơn giản như thế này chưa?

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