2016-06-20 2 views
0

私はListfloatの座標を持っています。私は以前描画された線の周りに矩形を描画しようとしています。getbounds rectangleまたはrectangleFを描画しますか?

Graphics G = e.Graphics;  
Pen pen5 = new Pen(Color.DodgerBlue, 0.01f); 
var rect2 = new RectangleF(); 

GraphicsPath maliOkvir = new GraphicsPath(); 
maliOkvir.AddLine(((float)(odabraniSegment[0].startX)), 
        (float)(odabraniSegment[0].startY), 
        (float)(odabraniSegment[0].endX), 
        (float)(odabraniSegment[0].endY)); 

rect2 = maliOkvir.GetBounds(); 
G.DrawRectangle(pen5, rect2); 

私はrect2部分にエラーを取得しています:

G.DrawRectangles(pen5, rect2); 

'System.Drawing.RectangleF []' 'にSystem.Drawing.RectangleF' から変換できません。

どうすればこの問題を解決できますか?あなたがRectangleの配列を期待しSystem.Drawing.GraphicsDrawRectangles()方法を、使用している

enter image description here

+1

、それが何であれ、 'Eのように見えます'は、その中に' DrawRectangles'メソッドを持っています。これは 'RectangleF's(' RectangleF [] ')の配列を取るかもしれないという事実を暗示しています。 'Graphics'クラスを見ると、' .DrawRectangle'(単数)メソッドがあります:https://msdn.microsoft.com/en-us/library/sx8yykw8(v=vs.110).aspx適切な方法を使用していますか? –

+1

'DrawRectangles'は長方形の配列を期待しています。最後に' sをつけずに 'DrawRectangle'が必要です。 – DavidG

+0

@DavidGあなたは正しいです、それはそれを直す前の試みから残ったものです。 – Romy

答えて

2

DrawRectanglesメソッドは、RectangleまたはRectangleFオブジェクトの配列を想定していますが、1つのアイテムだけを渡しています。あなたはどちらかのはず:

  1. 方法の特異バージョンを使用するようにスイッチは、アレイ内すなわちDrawRectangle
  2. パス:一見

    G.DrawRectangles(pen5, new [] { rect2 }); 
    
+1

または3.浮動小数点値を渡す: 'g.DrawRectangle(pen5、rect2.X、rect2.Y、rect2.Width、rect2.Height);' :-) – LarsTech

+0

確かに@LarsTech、それを追加するように誘惑されましたが、パラメータの順序を覚えるのは常にPITAです。 – DavidG

2

RectangleRectangleFの複数のバリエーションを試してみましたが、どれも...最終的な結果は次のようになります。一緒に働きません。 DrawRectangle()

は単数バージョンを使用し

G.DrawRectangle(pen5, rect2); // Singular 

MSDNあなたはGraphicsクラスに関する情報の(ロット)を与えます。

希望すると便利です。

+0

私の部分に間違い、それはDrawRectangleされている必要があります、私は1つが必要ですが、私はすべてが浮動小数点値を取る必要があるので、 :) – Romy

+0

@Romyを助けてくれてうれしい!簡単に間違いを作る。完了したら回答としてマークすることを忘れないでください。ハッピープログラミング:) –

+0

余分な "s"は間違いでしたが、同じ問題が残っています:/ – Romy

関連する問題