wpf窗体1 window1.运行时是全屏的,有背景图片,界面上有几个图片,按钮,有右键菜单。等window1加载完成后,会调用一个非托管exe程序,该程序会全屏,且清屏为黑色。按ESC该程序就会被退出。此时正确的是应该显示window1界面。目前的问题是,按ESC退出后,window1界面有时候变得一片空白。只有多点几下鼠标左键或者右键,或者按alt+tab切到该界面。才能正常显示。如果什么都不操作的话,会一直空白。但是有时候按ESC退出后直接就能正常显示。请问下这个问题应该咋解决,谢谢了。

解决方案 »

  1.   

    对了,忘了说了。如果出现空白时,点右键,稍等一下界面能全部显示。右键菜单中,有个“退出”菜单。代码为
    System.Environment.Exit(0);正常情况下。都会退出程序。但是,在出现窗体空白后,执行这段代码会变得非常的慢。
      

  2.   

    由于WPF在性能允许的条件下会使用DirectX来为界面渲染加速,如果你调用的程序也使用了DirectX,有可能造成一些问题。建议在程序结束后手动刷新一下界面,使用Dispatcher.Invoke(DispatcherPriority.Render, () => { })
    //或
    UpdateLayout()