我有一个带有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),但是,除了将Opacity设置为1,我不知道如何用WPF做到这一切。我希望重写OnRender而不在其中进行任何操作会避免重绘,但不知何故系统仍然会绘制背景。
有谁知道如何阻止系统重绘窗口?
你的时间