2011-11-08 19 views
4

私は、ツリービューの展開ボックス(「プラス/マイナス」)を描く必要があるオーナーコントロールを描いています。簡単でビジュアルスタイルがそれをオンにすると、ちょうど適切なのVisualStyleElementレンダラーを作成します。ビジュアルスタイルをオフにしてUI要素を描画するにはどうすればよいですか?

VisualStyleElement element = VisualStyleElement.TreeView.Glyph.Opened 
VisualStyleRenderer renderer = new VisualStyleRenderer(element); 
Size size = renderer.GetPartSize(graphics, ThemeSizeType.True); 
... 
renderer.DrawBackground(graphics, someRect); 

それは視覚的なスタイルがオフになっている場合も、同様の効果を達成することは可能ですか?コントロール全体を描画することができるControlPaintクラスがあることを知っていますが、TreeViewコントロールの一部だけを描画します(そしてそのサイズを取得するにはどうすればよいですか)。

答えて

1

VisualStylesがなければ、マイナスのプラスのコントロールはDrawRectangleとDrawLineのメソッド呼び出しに過ぎないと思います。

矩形の部分はSystemColors.Controlの色を使い、プラス/マイナスの部分はSystemColors.ControlText(または黒色)のように見えます。

enter image description here

+0

私はいくつかの「高レベル」のアプローチを期待していたが、これは正常に動作します。 –

関連する問題