2009-08-14 8 views
13

Ich muss die Hervorhebungsfarbe des ausgewählten Elements einer ComboBox in der Popup-Liste ändern. Ich habe mehrere Tutorials gefunden, die erklären, wie man das macht, aber alle verwenden entweder Blend, das ich nicht habe und nicht bekommen kann, oder die Standardfarben des Systems ändern - was mir wie ein Hack vorkommt.Set ComboBox ausgewählter Eintrag Hervorhebungsfarbe

Kann mir jemand auf die Vorlage hinweisen, die ich überschreiben muss, oder mir die Eigenschaft mitteilen, die ich einstellen muss?

Antwort

23

Aufschalten der SystemColors.HighlightBrushKey (und SystemColors.HighlightTextBrushKey wenn Sie möchten):

<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

Wieder einmal, Gibt es dafür keine Möglichkeit, die Systemfarben nicht zu ändern? – Klay

+0

Ich finde Referenzen auf eine SelectionBoxItemTemplate. Steuert das das markierte Objekt im Popup? – Klay

+3

Sie ändern nicht die Systemfarben - Sie überschreiben sie nur im Bereich der ComboBox. –

0

Ich habe eine Vorlage für Combobox erstellt hier:

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

Danke, Vikas

+1

Wie Sie das "Panel" in in erhalten oder wussten ComboBoxItem Stil? –

+0

@JaysonRagasa, ich weiß, dass dies jetzt wirklich alt ist, aber für den Fall, dass Sie oder andere Leser es nie herausfanden, können Sie auf die Standard-WPF-Steuervorlagen in Visual Studio zugreifen: [Wie Standardsteuervorlage in Visual Studio zu extrahieren?] (Https : //stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio). – Sheridan

Verwandte Themen