2010-06-24 74 views
5

我一直在尋找如何更改已失去焦點的列表框中選定項目的文本顏色。WPF如何在列表框丟失焦點時更改列表框中選定的項目文本顏色

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Orange"/> 

這三個標記照顧大部分工作,但我的列表框中有一個黑色的背景,當控件失去焦點,字體變成黑色。

我從另一個帖子SystemColor. Keys發現了這個列表,這個列表提供了很多可能的選項,任何看起來遠程直觀的東西都沒有奏效。有人知道我需要改變的關鍵嗎?

回答

1

使用下面的代碼,只是使用Colors.Black

listBox.Resources.Add(SystemColors.ControlBrushKey, new SolidColorBrush(Color.FromArgb(0xFF, 0x7F, 0xDB, 0x14))); 
listBox.Resources.Add(SystemColors.ControlTextBrushKey, Brushes.White); 

好運氣改變,例如顏色。

8

我把這個資源字典包含列表框中的元素:

   <Style TargetType="ListBoxItem"> 
       <Style.Resources> 
        <!--SelectedItem with focus--> 
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue"/> 
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/> 
        <!--SelectedItem without focus--> 
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Blue"/> 
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="White"/> 
       </Style.Resources> 
      </Style> 

還要注意的是,在.NET 4.5,你要問「老」的行爲通過設置

 FrameworkCompatibilityPreferences. 
      AreInactiveSelectionHighlightBrushKeysSupported = false; 

在任何窗口創建之前,在程序的早期階段。

相關問題