2009-08-14 40 views
13

Tôi cần thay đổi màu đánh dấu của mục đã chọn của ComboBox trong danh sách bật lên. Tôi đã tìm thấy một số hướng dẫn giải thích cách làm điều này, nhưng tất cả chúng đều sử dụng Blend, mà tôi không có và không thể có được, hoặc liên quan đến việc thay đổi màu mặc định của hệ thống - có vẻ như là một hack với tôi.Đặt mục ComboBox mục được chọn làm nổi bật màu

Ai đó có thể chỉ cho tôi mẫu tôi cần ghi đè hoặc cho tôi biết thuộc tính tôi cần phải đặt không?

Trả lời

23

Override các SystemColors.HighlightBrushKey (và SystemColors.HighlightTextBrushKey nếu bạn muốn):

<ComboBox> 
    <ComboBox.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">Red</SolidColorBrush> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}">Blue</SolidColorBrush> 
    </ComboBox.Resources> 
    <ComboBoxItem>One</ComboBoxItem> 
    <ComboBoxItem>Two</ComboBoxItem> 
</ComboBox> 
+0

Một lần nữa, không có cách nào để làm điều này mà không liên quan đến việc thay đổi màu sắc hệ thống? – Klay

+0

Tôi tiếp tục tìm các tham chiếu đến một SelectionBoxItemTemplate. Đây có phải là điều điều khiển mục được đánh dấu trong cửa sổ bật lên không? – Klay

+3

Bạn không thay đổi màu hệ thống - bạn chỉ đơn thuần là ghi đè chúng ở phạm vi của ComboBox. –

0

Tôi đã tạo ra một khuôn mẫu để Combobox ở đây:

http://wpfstyles.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31388#DownloadId=78720

Cảm ơn, Vikas

+1

Làm thế nào bạn có được hoặc biết về "Panel" trong trong Kiểu ComboBoxItem? –

+0

@JaysonRagasa, tôi nhận ra rằng điều này thực sự cũ, nhưng trong trường hợp bạn hoặc người đọc khác không bao giờ phát hiện ra, bạn có thể truy cập các mẫu điều khiển WPF mặc định trong Visual Studio: [Làm thế nào để trích xuất mẫu kiểm soát mặc định trong Visual Studio?] (Https : //stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio). – Sheridan

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