如何更改弹出菜单的打开动画
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
我有一个在 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