颜色样式:
<LinearGradientBrush x:Key="MenuPopupBrush"
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="#7FFFFFFF"
Offset="0" />
<GradientStop Color="#C28B008B"
Offset="0.3"/>
<GradientStop Color="#FF4B0082"
Offset="1" />
</LinearGradientBrush>
菜单样式:
<Style x:Key="MyContextMenu" TargetType="{x:Type ContextMenu}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Border x:Name="Border" CornerRadius="4"
Background="{StaticResource MenuPopupBrush}"
BorderThickness="1">
<Border.BorderBrush>
<SolidColorBrush Color="#FF888888" />
</Border.BorderBrush>
<StackPanel IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle" />
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(FrameworkElement.Width)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0020000" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2520000" Value="142"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3450000" Value="120"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4300000" Value="142"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(FrameworkElement.Height)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0020000" Value="0"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.2520000" Value="200"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.3450000" Value="170"/>
<SplineDoubleKeyFrame KeyTime="00:00:00.4300000" Value="200"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
右键菜单:
<ContextMenu Style="{StaticResource MyContextMenu}">
<MenuItem Header="测试二次"/>
<MenuItem Header="测试三次">
<MenuItem.Icon>
<Image Source="Add.png" Width="12" Height="12"/>
</MenuItem.Icon>
</MenuItem>
<Separator Opacity="0.4"></Separator>
<MenuItem Header="测试四次"/>
<MenuItem Header="测试五次"/>
<MenuItem Header="测试六次"/>
<Separator Opacity="0.4" ></Separator>
<MenuItem Header="测试二次"/>
<MenuItem Header="测试三次"/>
<MenuItem Header="测试五次"/>
<Separator Opacity="0.4"></Separator>
<MenuItem Header="测试六次">
<MenuItem.Icon>
<Image Source="Delete.png" Width="12" Height="12"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>