2011-02-07 24 views
5

境界線のないフォームがあり、4面またはコーナーのいずれかをクリックするとサイズを変更する必要があります。明確にするために、私は私のフォームは、Windows 7でデフォルト付箋紙のようなボーダレスになりたい境界線のないグリッパーを描く

enter image description here

私はそれがによって提供されたコードを使用して(今だけのための右下隅に)動作するようになってきましたこの記事のジュリアンLebosquain:

Resize borderless window on bottom right corner

しかし、私は本当に右下にドラッググリッパ画像を表示したいと思います。彼のポストでは、ジュリアンは、グリッパについて、これを述べた:

をあなたはそのPaintBackground()メソッドを使用して新しい
VisualStyleRenderer(VisualStyleElement.Status.Gripper.Normal)を初期化し、
ことができます。

私のフォームでこれを行う方法についてはわかりません。誰かが私を正しい方向に向けることができますか?

ありがとうございます。

+0

あなたは4つのコーナーと4つの横にまたは4つのコーナーからドラッグすることができますか? –

+0

4隅と4辺。しかし、私の最優先事項は、グリッパーの画像を右下隅に表示して、フォームがサイズ変更可能であることを示すことです。 – Vaheh

答えて

7

で、この記事を参照してくださいので、それをここで少しアップ読んだ後:http://msdn.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstyleelement.status.gripper.normal.aspxを、私は解決策を持っています。

最初にフォームのOnPaint()イベントを上書きします。

protected override void OnPaint(PaintEventArgs e) { 
     base.OnPaint(e); 
     DrawGripper(e); 
    } 

そして、図面を行う方法。

public void DrawGripper(PaintEventArgs e) { 
     if (VisualStyleRenderer.IsElementDefined(
      VisualStyleElement.Status.Gripper.Normal)) { 
      VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.Status.Gripper.Normal); 
      Rectangle rectangle1 = new Rectangle((Width) - 18, (Height) - 20, 20, 20); 
      renderer.DrawBackground(e.Graphics, rectangle1); 
     } 
    } 
+0

+1、良いこと、 'DrawGripper();で' Invalidate(); 'を使います。 –

関連する問題