如何更改弹出菜单的打开动画

How to change open animation of flyout menu

我有一个在 ListView 项目上打开的弹出菜单。默认打开动画很慢有没有办法改变弹出菜单的默认动画?

编辑

我正在使用以下依赖项 属性 在列表视图项目上显示上下文菜单,它工作正常,但是当显示上下文菜单时,它会稍微挤压整个视图。我不想在上下文菜单打开时挤压页面。

 public class OpenMenuFlyoutAction:DependencyObject,IAction
{

    public object Execute(object sender, object parameter)
    {
        if (!Global.IsDisabledShowContextMenuOnListView)
        {
            FrameworkElement senderElement = sender as FrameworkElement;
            FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);

            flyoutBase.ShowAt(senderElement);
        }
        return null;
    }

}

列表项数据模板

 <DataTemplate x:Key="MemberListItemDataTemplate">
    <Grid Width="{Binding ElementName=searchView,Path=ActualWidth}" Background="{Binding ItemBackground}"
          Margin="0,0,0,20" Height="auto">
        <i:Interaction.Behaviors>
            <icore:EventTriggerBehavior EventName="Holding">
                <helpers:OpenMenuFlyoutAction />
            </icore:EventTriggerBehavior>
        </i:Interaction.Behaviors>
        <FlyoutBase.AttachedFlyout>
            <MenuFlyout>

                <MenuFlyoutItem Text="share" RequestedTheme="Dark" Command="{Binding ElementName=pageMyProfile, Path=DataContext.ShareMemberDetails}" CommandParameter="{Binding item99}" />
                <MenuFlyoutItem Text="reomve from members" RequestedTheme="Dark" Command="{Binding ElementName=pageMyProfile, Path=DataContext.RemoveMember}" CommandParameter="{Binding item99}" />
            </MenuFlyout>
        </FlyoutBase.AttachedFlyout>
  ...
  </DataTemplate>

是的,您需要在资源中针对 MenuFlyoutPresenter 创建一个新样式

<Style TargetType="MenuFlyoutPresenter"> 

如果您从 Program Files (x86)\Windows Phone Kits.1\Include\abi\Xaml\Design\generic.xaml 复制它,您会发现已经有里面的一些情节提要用于各种视觉状态,您需要更改这些状态​​才能获得不同的动画。

我在我的博客中写过一些非常相似的东西 post MenuFlyout flip animation on Windows Phone WinRT