You can override this behavior by getting a copy of the default template from WPF Visual Studio Designer, and then in the ComboBoxReadonlyToggleButton comment, comment out the ButtonChrome section and replace it with Border. Here is a link to the site where I found the solution - http://www.scriptscoop.net/t/d346cf01d844/cc-wpf-combobox-mouse-over-color.html
Here is my code snippet
<Style x:Key="ComboBoxReadonlyToggleButton" TargetType="{x:Type ToggleButton}"> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="IsTabStop" Value="false"/> <Setter Property="Focusable" Value="false"/> <Setter Property="ClickMode" Value="Press"/> <Setter Property="Background" Value="Transparent"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Border x:Name="Chrome" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> <Grid HorizontalAlignment="Right" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"> <Path x:Name="Arrow" Data="{StaticResource DownArrowGeometry}" Fill="Black" HorizontalAlignment="Center" Margin="3,1,0,0" VerticalAlignment="Center"/> </Grid> </Border>
I also added code to change the background color to DarkOrange - This code got into the ControlTemplate (in the section) for the style for ComboBox.
<Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="DarkOrange"></Setter> </Trigger>
source share