在Windows 8 ListBoxItem
似乎有
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
</MultiTrigger>
爲它的默認風格,然後使用SystemColors.ControlBrushKey
和SystemColors.ControlTextBrushKey
,所以你可能想太多覆蓋它們在你的資源不活動選擇觸發,
也許類似於:
<ListBox>
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#3399FF" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="#000000" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#3399FF" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="#000000" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#3399FF" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="#000000" />
</ListBox.Resources>
</ListBox>
或只是創建一個Style
yoursel f(基於默認模板),並直接在這個新的Style
上設置顏色,然後將保證適用於任何版本的操作系統,並且不必保留回溯並檢查默認值是否有變化。
來源
2013-04-15 12:29:54
Viv
'InactiveSelectionHighlightBrushKey'和'InactiveSelectionHighlightTextBrushKey'不可用在Windows 7/.NET 4。 – Sheridan