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

时间:2011-06-30 14:54:55

标签: wpf window system draw

我有一个带有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而不在其中进行任何操作会避免重绘,但不知何故系统仍然会绘制背景。

有谁知道如何阻止系统重绘窗口?

你的时间

1 个答案:

答案 0 :(得分:0)

尝试将窗口背景设置为null:

this.Background=null;

您也可以尝试this