Как избежать / помешать системе рисовать / перерисовывать / обновлять / рисовать окно WPF - PullRequest
4 голосов
/ 30 июня 2011

У меня есть приложение WPF с Visual C # (с использованием Visual Studio 2010), и я хочу рисовать сцены OpenGL в самом окне WPF. Что касается самого OpenGL drawinf, я могу нарисовать его без проблем, то есть я могу создать контекст визуализации GL из самого главного окна WPF (без дополнительного элемента управления OpenGL, без окна win32 внутри окна WPF), использовать команды GL и использовать swapbuffer (все это делается внутри dll - используя C - я создал сам). Однако меня раздражает мерцание, когда, например, я изменяю размер окна. Я переопределил метод OnRender для перерисовки с помощью opengl, но после этого окно перерисовывается с цветом фона. Вероятно, система автоматически перерисовывает его. С помощью WindowForms я могу предотвратить автоматическое перерисовывание системы (определяя некоторые ControlStyles на true или false, например, UserPaint = true, AllPaintingInWmPaint = true, Opaque = true, ResizeRedraw = true, DoubleBuffer = false), но помимо настройки непрозрачности для 1, я не знаю, как все это сделать с WPF. Я надеялся, что переопределение OnRender без каких-либо операций внутри него позволит избежать перерисовки, но каким-то образом система все равно отрисовывает фон.

Кто-нибудь знает, как запретить системе перерисовывать окно?

Спасибо за ваше время

1 Ответ

0 голосов
/ 01 июля 2011

Попробуйте установить для фона окна значение null:

this.Background=null;

Вы также можете попробовать this .

...