Я бы хотел переопределить шаблон элемента управления MenuItem, чтобы я мог настроить цвет фона наведения мыши для моих элементов MenuItem.
Я использую следующий xaml:
<Style TargetType="MenuItem">
<Setter Property="Background" Value="#26222b"/>
<Setter Property="Height" Value="25"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="MenuItem">
<Border Padding="10 0 10 0"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}">
<ContentPresenter x:Name="ContentPresenter"
Content="{TemplateBinding Header}"
ContentSource="Header"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" Value="#2f2a36"/>
</Trigger>
</Style.Triggers>
</Style>
Это делает то, что я ожидаю с точки зрения стиля, но кнопки больше не реагируют на события нажатия.
Я также попытался использовать ControlTemplate.Trigger вместо Style.Trigger, чтобы внести желаемое изменение. Я не знаю, какое решение считается правильным (пожалуйста, дайте мне знать), но ни одно из них не помогло решить проблему.
Насколько я понимаю, я должен иметь возможность переопределить стиль элемента, не переписывая его Функция ответа клика, поэтому я предполагаю, что я делаю что-то не так, чтобы сломать это.
На всякий случай, если это полезно, ниже приведен xaml, в котором я определил само меню:
<Menu Grid.Row="0"
Grid.ColumnSpan="2"
IsMainMenu="True">
<Menu.Items>
<MenuItem Header="_File" DataContext="{Binding File}">
<MenuItem Header="_New" Command="{Binding NewCommand}"/>
<MenuItem Header="_Open" Command="{Binding OpenCommand}" />
<MenuItem Header="_Save" Command="{Binding SaveCommand}"/>
<MenuItem Header="_Save as..." Command="{Binding SaveAsCommand}"/>
</MenuItem>
<MenuItem Header="_Format" DataContext="{Binding Editor}">
<MenuItem Header="_Format" Command="{Binding FormatCommand}"/>
<MenuItem Header="_Word wrap" Command="{Binding WrapCommand}"/>
</MenuItem>
<MenuItem Header="_Help" DataContext="{Binding Help}">
<MenuItem Header="_About" Command="{Binding HelpCommand}"/>
</MenuItem>
</Menu.Items>
</Menu>
Любое направление будет с благодарностью. Заранее спасибо!