単純な解決策: ブラシをリソースに追加し、ComboBox の Background プロパティから (StaticResource バインディングを介して) 参照するだけです。
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<SolidColorBrush x:Key="BackgroundColorKey" Color="Red"/>
<Style TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource BackgroundColorKey}" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<ComboBox Height="25"/>
</Grid>
問題: 項目を選択すると、背景色がデフォルトの色にリセットされます。これを修正する唯一の解決策は、コンボボックスのデフォルト テンプレートをオーバーライドすることです。
修正: デフォルトの ComboBox テンプレートを変更します。ComboBox の既定のテンプレートは msdn にあります。ここにリンクがあります - http://msdn.microsoft.com/en-us/library/ms752094(v=vs.100).aspx。「ComboBox ControlTemplate の例」セクションを参照してください。
関連リンク:
MouseOver の強調表示スタイルが 1 秒後にデフォルトに戻る (Aero が原因?)
http://social.msdn.microsoft.com/Forums/en/wpf/thread/a18891e9-8879-4819-9679-247341782f60