3D アプリで Winforms (および最終的には HostElement 経由の WPF) を使用するために、Winforms を SharpDX プロジェクトと統合しようとしています。
次のことができるように、コントロールまたはフォームを作成または構成する必要があります。
を。
b.テクスチャにレンダリングします (スプライトとして表示できます*) 。コントロールがアクティブでないときに、入力をフィルター処理してマウス/キーボード イベントを削除します。
OnPaint と OnPaintBackground をオーバーライドするために Control と Form をサブクラス化しようとしましたが、これらは子コントロールには影響しません。さらに言えば、フォームの境界線にも影響を与えません (たとえそれらがあったとしても、私がまだ残っているので、それらだけでは十分ではありません)。 「親」が描かれていると思われる白い四角)。
コントロールまたはフォームの画面への描画を停止し、代わりにビットマップのみに描画するにはどうすればよいですか? (たとえば、ツリーが描画される前に Graphics をオーバーライドできる方法はありますか?)
* Winforms は真の透明度をサポートしていないため、(コントロールを画面にレンダリングするのではなく) この方法で行う必要があるため、ピクセル シェーダーで色分けされたピクセルをクリップする必要があります。
(確認するために、特に DirectX テクスチャを意味しているわけではありません。単純な System.Drawing ビットマップに満足しています (実際には好むでしょう))。