2011-06-30 82 views
4

Visual C#(Visual Studio 2010を使用)でアプリケーションWPFを使用しており、WPFウィンドウ自体にOpenGLシーンを描画します。 OpenGL drawinf自体については、WPFメインウィンドウ自体からGLレンダリングコンテキストを作成することができます(追加のOpenGLコントロールなし、WPFウィンドウ内のWin32ウィンドウなし)。GLコマンドを使用します。 swapbufferを使用してください(これはすべてdllの中で実行されます - Cを使用して自分自身を作成し​​ました)。しかし、たとえば、ウィンドウのサイズを変更すると、ちらつきがあります。私は、OpenGLで再描画するためにOnRenderメソッドをオーバーライドしましたが、その後、ウィンドウは背景色で再描画されます。システムが自動的に再描画している可能性があります。 WindowFormsでは、システムを自動的に再描画しないようにすることができます(いくつかのControlStylesを定義すると、UserPaint = true、AllPaintingInWmPaint = true、Opaque = true、ResizeRedraw = true、DoubleBuffer = false)。 1、私はWPFですべてを行う方法を知らない。 OnRenderを操作しないでOnRenderをオーバーライドすると、再描画が回避されることを期待していましたが、何らかの形でシステムがまだ背景を描画しています。WPFウィンドウを描画/再描画/リフレッシュ/ペイントするシステムの回避/防止方法

システムがウィンドウを再描画するのを防ぐ方法を知っていますか?

答えて

0

がnullにウィンドウの背景を設定してみてください、あなたの時間のための

Thxを:

this.Background=null; 

またthisを試すことができます。

+0

こんにちはAndy、私がそうしたときの唯一の違いは、ウィンドウの色がデフォルトの白から黒の色に変わることです。システムの再描画には、最後の単語、つまり背景色が黒色である黒い背景ウィンドウが残っています。 – Leo

+0

"これも試してみることができます。"私はすでにこの記事を読んでいますが、WPFのメインウィンドウはoGLではなく2番目のwinformまたはwin32ウィンドウを使用しています(私はWPFコントロールを気にしません。実際にはWPFを使用していますタッチサポートのみ)。 – Leo

関連する問題