WPF如何去掉ContextMenu的显示和隐藏动画

原文:WPF如何去掉ContextMenu的显示和隐藏动画

首先上一个例子:

<Grid Name="grid" Margin="5">
        <ListBox>
            <ListBoxItem Content="asdasd"/>
            <ListBoxItem Content="asdasd"/>
            <ListBoxItem Content="asdasd"/>
            <ListBoxItem Content="asdasd"/>
            <ListBoxItem Content="asdasd"/>
            <ListBoxItem Content="asdasd"/>
            <ListBox.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                    <MenuItem Header="123123"/>
                </ContextMenu>
            </ListBox.ContextMenu>
        </ListBox>
    </Grid>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

这段代码运行后,在对应控件上快速并多次右键显示菜单,如果机器的性能不够好,会出现闪烁的情况。
解决方案:
在App.xaml加上一句话:

<PopupAnimation x:Key="{x:Static SystemParameters.MenuPopupAnimationKey}">None</PopupAnimation>
  • 1

如何去掉ContextMenu的显示动画?

WPF如何去掉ContextMenu的显示和隐藏动画

上一篇:基于 WPF 模块化架构下的本地化设计实践


下一篇:如何在双向绑定的Image控件上绘制自定义标记(wpf)