如何避免/阻止系统绘制/重新绘制/刷新/绘制WPF窗口



我有一个带有Visual C#的应用程序WPF(使用Visual studio 2010(,我想在WPF窗口本身上绘制OpenGL场景。至于OpenGL drawinf本身,我可以在没有问题的情况下绘制它,这意味着,我可以从WPF主窗口本身创建GL渲染上下文(没有额外的OpenGL控件,WPF窗口中没有win32窗口(,使用GL命令和swapbuffer(所有这些都是在dll中完成的,使用C-我自己创建的(。然而,例如,当我调整窗口大小时,我会出现令人讨厌的闪烁。我推翻了OnRender方法,用opengl重新绘制,但在这之后,窗口会用背景色重新绘制。很可能系统正在自动重绘它。使用WindowForms,我可以防止系统自动重绘(将一些ControlStyles定义为true或false,如UserPaint=true、AllPaintingInWmPaint=true,Opaque=true、ResizeRedraw=true、DoubleBuffer=false(,但是,除了将"不透明度"设置为1之外,我不知道如何使用WPF来完成所有这些操作。我希望在没有操作的情况下覆盖OnRender可以避免重新绘制,但不知何故,系统仍然绘制背景。

有人知道如何防止系统重新绘制窗口吗?

Thx为您的时间

尝试将窗口的背景设置为空:

this.Background=null;

你也可以试试这个。

最新更新