How to avoid/prevent the system to draw/redraw/refresh/paint a WPF window
Posted
by
Leo
on Stack Overflow
See other posts from Stack Overflow
or by Leo
Published on 2011-06-30T14:54:55Z
Indexed on
2011/06/30
16:22 UTC
Read the original article
Hit count: 309
I have an Application WPF with Visual C# (using visual studio 2010) and I want to draw OpenGL scenes on the WPF window itself. As for the OpenGL drawinf itself, I'm able to draw it w/o problems, meaning, I can create GL render context from the WPF main window itself (no additional OpenGL control, no win32 window inside WPF window), use GL commands and use swapbuffer (all this is done inside a dll - using C - I created myself). However, I have an annoying flickering when, for example, I resize the window. I overrided the OnRender method to re-draw with opengl, but after this, the window is redraw with the background color. It's likely that the system is automatically redrawing it. With WindowForms I'm able to prevent the system to redraw automatically (defining some ControlStyles to true or false, like UserPaint = true, AllPaintingInWmPaint = true, Opaque = true, ResizeRedraw = true, DoubleBuffer = false), but, aside setting Opacity to 1, I don't know how to do all that with WPF. I was hoping that overriding OnRender with no operations inside it would avoid redrawin, but somehow the system still draw the background.
Do anyone know how to prevent system to redraw the window?
Thx for your time
© Stack Overflow or respective owner