WPF 右键菜单动画

颜色样式:

<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>


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值