2009-08-14 11 views
13

Devo modificare il colore di evidenziazione di un elemento selezionato di ComboBox nell'elenco popup. Ho trovato diversi tutorial che spiegano come farlo, ma tutti usano Blend, che non ho e non posso ottenere, o implicano la modifica dei colori di default del sistema - che mi sembra un trucco.Impostare ComboBox elemento selezionato colore evidenziazione

Qualcuno può indicarmi il modello che ho bisogno di sovrascrivere o dirmi la proprietà che devo impostare?

risposta

23

Override l'SystemColors.HighlightBrushKey (e SystemColors.HighlightTextBrushKey se volete):

<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

Ancora una volta, non c'è un modo per farlo che non implichi cambiare i colori del sistema? – Klay

+0

Continuo a trovare riferimenti a SelectionBoxItemTemplate. È questo che controlla l'elemento evidenziato nel popup? – Klay

+3

Non stai cambiando i colori di sistema: li stai semplicemente sovrascrivendo nell'ambito di ComboBox. –

0
+1

Come hai ottenuto o conosciuto il "Pannello" in in Stile ComboBoxItem? –

+0

@JaysonRagasa, mi rendo conto che questo è molto vecchio ora, ma nel caso tu o altri lettori non lo scopriste, puoi accedere ai modelli di controllo WPF predefiniti in Visual Studio: [Come estrarre il modello di controllo predefinito in Visual Studio?] (Https : //stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio). – Sheridan