2009-08-14 13 views
13

Potrzebuję zmienić kolor podświetlenia wybranego elementu ComboBox na liście podręcznej. Znalazłem kilka tutoriali wyjaśniających, jak to zrobić, ale wszystkie z nich używają Blend, którego nie mam i nie mogę uzyskać, lub wymagają zmiany domyślnych kolorów systemu - co wydaje mi się hackowaniem.Ustaw wybrany kolor podświetlenia elementu ComboBox

Czy ktoś może wskazać mi szablon, który muszę zastąpić, lub powiedzieć mi, którą nieruchomość muszę ustawić?

Odpowiedz

23

przesłonić SystemColors.HighlightBrushKey (i SystemColors.HighlightTextBrushKey jeśli chcesz):

<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

Po raz kolejny, czy nie ma na to sposobu, który nie wymaga zmiany kolorów systemu? – Klay

+0

Wciąż znajduję odniesienia do SelectionBoxItemTemplate. Czy to kontroluje podświetlony element w wyskakującym okienku? – Klay

+3

Nie zmieniasz kolorów systemu - tylko przesłonisz je w zasięgu ComboBox. –

0
+1

Skąd się wziął lub wiedział o "Panelu" w in Styl ComboBoxItem? –

+0

@JaysonRagasa, zdaję sobie sprawę, że jest to naprawdę stare, ale w przypadku, gdy ty lub inni czytelnicy nigdy się nie dowiesz, możesz uzyskać dostęp do domyślnych szablonów sterowania WPF w Visual Studio: [Jak wyodrębnić domyślny szablon kontrolny w Visual Studio?] (Https : //stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio). – Sheridan

Powiązane problemy