none
右键菜单出现时为什么会闪烁 RRS feed

  • 问题

  • 我在ListView中添加右键菜单,连续单机右键时为什么菜单会闪?如果先单机左键让菜单消失再单机右键就不会有这个问题。
    2012年5月12日 2:44

答案

  • 嗯,从代码看,是没有问题的。从现象看,应该属于具体机器的设备性能导致。 请问是XP系统吗,WPF用的是Aero的主题还是经典主题? 这样的闪烁应该在其他电脑没有出现对吧? 我的配置是集显,从快速的操作来看,是有轻闪烁,属于正常现象,这种现象,一方面取决于显示卡/系统的性能,一方面显示器的刷新也会有一定影响。如果不影响正常使用,我觉得可以忽略。 但是如果你觉得闪烁很厉害,建议是:

    1. 测试下其他机器,特别是客户可能使用到的机器及环境
    2. 优化自身程序界面上的所有元素,尽可能提高显示性能,即DX绘制的性能。这一方面,你可以尝试通过 WPF Performence Tool 去检测,然后可以根据此文档去优化你的整个程序的内容。http://msdn.microsoft.com/zh-cn/library/aa970683.aspx


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月15日 3:26
    版主
  • 是win7系统,我使用的是Areo,WindowStyle设置为None。在其他机器上也是这种情况,倒是不影响使用....我再试着优化一下看看

    谢谢啦~~

    2012年5月15日 12:00

全部回复

  • 你是这样添加的右键菜单吗:

        <ListView ItemsSource="Values">
          <ListView.ContextMenu>
            <ContextMenu>
              <MenuItem Header="Menu Item 1"/>
              <MenuItem Header="Menu Item 2"/>
              <MenuItem Header="Menu Item 3"/>
              <MenuItem Header="Menu Item 4"/>
            </ContextMenu>
          </ListView.ContextMenu>
        </ListView>


    如果说是连续右击,菜单在一直隐藏并显示,那属于正常现象。如果说菜单本身有闪烁,那么请检查下是否你的系统显卡驱动已更新到最新,你是什么系统环境,是否打开硬件加速?

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月14日 3:26
    版主
  • 嗯,我是这样加的:

                                <ListView.ContextMenu>
                                    <ContextMenu>
                                        <MenuItem Header="删除" Click="QTabDelete" />
                                        <MenuItem Header="删除全部" Click="QTabDeleteAll" />
                                    </ContextMenu>
                                </ListView.ContextMenu>

    出现闪烁是这样的:

    我在A点点击右键出现右键菜单,然后在另一点B点再点击右键这时候A点得右键菜单消失,B点右键菜单出现时会闪一下

    2012年5月14日 10:34
  • 嗯,从代码看,是没有问题的。从现象看,应该属于具体机器的设备性能导致。 请问是XP系统吗,WPF用的是Aero的主题还是经典主题? 这样的闪烁应该在其他电脑没有出现对吧? 我的配置是集显,从快速的操作来看,是有轻闪烁,属于正常现象,这种现象,一方面取决于显示卡/系统的性能,一方面显示器的刷新也会有一定影响。如果不影响正常使用,我觉得可以忽略。 但是如果你觉得闪烁很厉害,建议是:

    1. 测试下其他机器,特别是客户可能使用到的机器及环境
    2. 优化自身程序界面上的所有元素,尽可能提高显示性能,即DX绘制的性能。这一方面,你可以尝试通过 WPF Performence Tool 去检测,然后可以根据此文档去优化你的整个程序的内容。http://msdn.microsoft.com/zh-cn/library/aa970683.aspx


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月15日 3:26
    版主
  • 是win7系统,我使用的是Areo,WindowStyle设置为None。在其他机器上也是这种情况,倒是不影响使用....我再试着优化一下看看

    谢谢啦~~

    2012年5月15日 12:00
  • 还有一种可能,那就是你在你的A点 或者B点本身就有一些处理鼠标右击的逻辑,这些逻辑影响到了右键菜单的显示。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月17日 6:53
    版主