2016-12-23 17 views
0

MouseOverでMenuItem/ContextMenuの鮮明な色を削除/変更するにはどうすればよいですか?私はContextMenu Templateを編集し、MouseOverでMenuItemのスタイルを設定しようとしましたが、デフォルトのHiglightedColorはMouseOverにstilです。MouseOverでMenuItem/ContextMenuの鮮明な色を削除/変更するにはどうすればよいですか?

<Style TargetType="{x:Type ContextMenu}"> 
        <Setter Property="SnapsToDevicePixels" 
       Value="True" /> 
        <Setter Property="OverridesDefaultStyle" 
       Value="True" /> 
        <Setter Property="Grid.IsSharedSizeScope" 
       Value="true" /> 
        <Setter Property="HasDropShadow" 
       Value="True" /> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type ContextMenu}"> 
           <Border x:Name="Border" 
        Background="Black" 
        BorderThickness="0"> 
            <Border.BorderBrush> 
             <SolidColorBrush Color="Black" /> 
            </Border.BorderBrush> 
            <StackPanel IsItemsHost="True" 
          KeyboardNavigation.DirectionalNavigation="Cycle" /> 
           </Border> 
           <ControlTemplate.Triggers> 
            <Trigger Property="HasDropShadow" 
         Value="true"> 
             <Setter TargetName="Border" 
         Property="Padding" 
         Value="0,0,0,0" /> 
             <Setter TargetName="Border" 
         Property="CornerRadius" 
         Value="0" /> 
            </Trigger> 
            <Trigger Property="IsMouseOver" Value="True"> 
             <Setter Property="BorderBrush" Value="Transparent"/> 
             <Setter Property="Background" Value="Transparent"/> 
            </Trigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 

<Style TargetType="{x:Type MenuItem}"> 
        <Style.Triggers> 
         <Trigger Property="IsHighlighted" Value="True"> 
          <Setter Property="Background" Value="Transparent"></Setter> 
         </Trigger> 
         </Trigger> 
         <Trigger Property="IsMouseOver" Value="true"> 
          <Setter Property="Background" Value="Transparent"> 

          </Setter> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 

答えて

1

あなたはIsHighlightedプロパティにMenuItemデフォルトのテンプレートと設定したトリガを無効にする必要があります。

<ContextMenu> 
    <ContextMenu.Resources> 
     <Style TargetType="{x:Type MenuItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type MenuItem}"> 
         <Border Background="{TemplateBinding Background}"> 
          <ContentPresenter Content="{TemplateBinding Header}" Margin="35 5 10 5" /> 
         </Border> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsHighlighted" Value="True"> 
           <Setter Property="Background" Value="Green"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ContextMenu.Resources> 
    <MenuItem Header="Element 1" /> 
    <MenuItem Header="Element 2" /> 
    <MenuItem Header="Element 3" /> 
</ContextMenu> 

を項目がちょうどTransparentに背景色を設定ホバリングされたときに、背景を削除するには。

関連する問題