C#实现Menu和ContextMenu自定义风格及contextMenu自定义

2019-12-26 13:08:31王振洲

ContextMenu的自定义

1.针对整个ContextMenu, 自定义一个Style,去掉竖分割线

 

 
  1. <Style x:Key="DataGridColumnsHeaderContextMenuStyle" TargetType="{x:Type ContextMenu}">  <Setter Property="SnapsToDevicePixels" Value="True"/> 
  2. <Setter Property="Grid.IsSharedSizeScope" Value="true"/>  <Setter Property="HasDropShadow" Value="True"/> 
  3. <Setter Property="Template">  <Setter.Value> 
  4. <ControlTemplate TargetType="{x:Type ContextMenu}">  <Border Uid="Border_93"> 
  5. <Border.Style>  <Style TargetType="{x:Type Border}"> 
  6. <Setter Property="Tag" Value="{DynamicResource {x:Static SystemParameters.DropShadowKey}}"/>  <Style.Triggers> 
  7. <DataTrigger Binding="{Binding Tag, RelativeSource={RelativeSource Self}}" Value="True">  <Setter Property="Effect"> 
  8. <Setter.Value>  <DropShadowEffect BlurRadius="4" Opacity="0.8" ShadowDepth="1"/> 
  9. </Setter.Value>  </Setter> 
  10. </DataTrigger>  </Style.Triggers> 
  11. </Style>  </Border.Style> 
  12. <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Uid="Border_50">  <ScrollViewer CanContentScroll="True" Uid="ScrollViewer_9"