我有一个带有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;
你也可以试试这个。