none
一个不知道是不是UI刷新的问题的bug RRS feed

  • 问题

  • 一个wpf程序。界面上最开始只有 1按钮和2 播放器,其中播放器是用MFC封装的ffmpeg做成的dll,加载在wpf里这个窗口中。平常是看不到3信息编辑区的。点击1按钮后,2播放器会隐藏起来,同时出现3信息编辑区。在3里如果又不想编辑了,可以点击取消按钮,这样3隐藏消失,2播放器就会显现出来。

    我现在的问题很奇怪,如果我疯狂的点击1新建信息按钮,然后出现编辑区域后,再点击3编辑区域里的取消按钮这样来回点。有一定概率出现,

    点击了新建按钮,播放器隐藏了,但是会残留最后一帧图像留在UI上盖住我的3编辑区域。那帧图像是静止的,如果我点击3编辑区域里的文本编辑框啥的,文本编辑框能接受我的点击,并且会显现出来,这样那一帧图像就会被我点出来的一个个控件给割的四分五裂。

    给我的感觉就是播放器确实是已经隐藏了,我的3编辑区域也确实出现了,可是偏偏播放器还留了一帧,这一帧还挡在了我的编辑区域上面。

    请问各位,有谁能提点我该从哪方面找找原因的么?现在一点头绪都没有,不知道如何下手。


    Jason


    • 已编辑 Jason Yuan 2016年8月7日 13:35 改正错别字
    2016年8月7日 13:34

答案

  • 您好 Jason,

    >>"可是偏偏播放器还留了一帧,这一帧还挡在了我的编辑区域上面。"

    这是控件的刷新问题,您可以试试调用信息编辑区域控件UpdateLayout方法来刷新一下UI。另外建议您把你的关键代码贴出来,这样比较方便我们排错。 比如您是如何将播放器放入XAML的以及您是如何隐藏这个播放器控件的?

    Best Regards,
    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 Jason Yuan 2016年8月11日 12:52
    2016年8月8日 6:23

全部回复

  • 您好 Jason,

    >>"可是偏偏播放器还留了一帧,这一帧还挡在了我的编辑区域上面。"

    这是控件的刷新问题,您可以试试调用信息编辑区域控件UpdateLayout方法来刷新一下UI。另外建议您把你的关键代码贴出来,这样比较方便我们排错。 比如您是如何将播放器放入XAML的以及您是如何隐藏这个播放器控件的?

    Best Regards,
    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 Jason Yuan 2016年8月11日 12:52
    2016年8月8日 6:23
  • DotNet Wang

    播放器控件是第三方的提供给我们的一个exe。只给我们开辟了API调用接口。我们使用播放器的时候必须先找一个我们窗口中的控件作为参照,将控件的位置以及想要的播放器的大小作为参数传给播放器,这样可以把播放器显现在我们的参照控件之上。隐藏时就调用播放器提供的隐藏API。

    由于是公司的项目,代码搞不出来,所以贴不了。

    我现在是在点击新建按钮之后的处理中加入了300ms的延迟,使用了threading.thread.sleep函数加的延迟,在能接受的情况下适当加大隐藏和显现播放器之间的时间间隔,目前改为未复现。我们还会继续测试,已检测看看是不是给播放器exe留点缓冲时间是不是就能解决问题了。如果无法解决,再看看能否和第三方接洽下找找原因。

    再次感谢 DotNet Wang,非常感谢。


    Jason

    2016年8月11日 12:52