2009-04-27 11 views

Antwort

6

, Sie nicht SystemColors.ControlTextBrushKey Leider verwenden können, weil es gilt, wenn das Element nicht ausgewählt ist, oder wenn es aktiviert ist, aber inaktiv (Ihre Frage lautet, als ob Sie sind nur daran interessiert, im letzteren). Allerdings können Sie dies tun:

<ListBox ...> 
    <ListBox.Resources> 
     <!-- this customizes the background color when the item is selected but inactive --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}">Red</SolidColorBrush> 
    </ListBox.Resources> 
    <ListBox.ItemContainerStyle> 
     <Style> 
      <Style.Triggers> 
          <!-- this customizes the foreground color when the item is selected but inactive --> 
       <Trigger Property="Selector.IsSelected" Value="True"> 
        <Setter Property="TextElement.Foreground" Value="Blue"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 
+1

Danke für Sie zu beantworten, aber leider ausgewähltes Element wird grau, wenn ListBox verliert Fokus :( ich weiß zu sein und Hintergrund blau Vordergrund würde, wenn das Element ausgewählt ist, aber inaktiv. –

+0

meine Antwort aktualisiert. –

3

Für mich gearbeitet - sowohl in der aktiven und inaktiven ListBox, die Vorder- und Hintergrundfarbe ausgewählt itemss sind die gleichen.

<ListBox.ItemContainerStyle> 
    <Style TargetType="{x:Type ListBoxItem}"> 
    <Style.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="DodgerBlue"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="DodgerBlue"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/> 
    </Style.Resources>   
    </Style> 
</ListBox.ItemContainerStyle> 
+0

Beste funktionierende Antwort im Web für mich – Julian

+0

Das funktioniert perfekt, danke –