2009-08-14 69 views
13

Necesito cambiar el color de resaltado del elemento seleccionado de un ComboBox en la lista emergente. He encontrado varios tutoriales que explican cómo hacer esto, pero todos usan Blend, que no tengo y no puedo obtener, o implican cambiar los colores predeterminados del sistema, lo que me parece un truco.Establecer el elemento seleccionado de ComboBox resaltar color

¿Alguien me puede señalar la plantilla que necesito anular, o decirme la propiedad que necesito establecer?

Respuesta

23

Sustituir el SystemColors.HighlightBrushKey (y SystemColors.HighlightTextBrushKey si usted quiere):

<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

Una vez más, ¿No hay una manera de hacer esto que no implique cambiar los colores del sistema? – Klay

+0

Sigo buscando referencias a SelectionBoxItemTemplate. ¿Esto es lo que controla el elemento resaltado en la ventana emergente? – Klay

+3

No está cambiando los colores del sistema, simplemente los reemplaza en el ámbito de ComboBox. –

0

He creado una plantilla para Combobox aquí:

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

Gracias, Vikas

+1

¿Cómo conociste o conocías el "Panel" en en Estilo ComboBoxItem? –

+0

@JaysonRagasa, me doy cuenta de que esto es realmente antiguo, pero en caso de que usted u otros lectores nunca se hayan enterado, puede acceder a las plantillas de control predeterminadas de WPF en Visual Studio: [¿Cómo extraer la plantilla de control predeterminada en Visual Studio?] (Https : //stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio). – Sheridan

Cuestiones relacionadas