2016-06-20 3 views
0

나는 Listfloat 좌표를 가지고 있으며 이전에 그려진 선 주위에 직사각형을 그리려고합니다.getbounds 직사각형 또는 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

, 그것은 어떤'전자처럼 보인다 '메소드에'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. 전환이 방법의 단일 버전을 사용하려면, 배열 DrawRectangle
  2. 패스 예 : 언뜻

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

또는 3. float 값을 전달하십시오 :'g.DrawRectangle (pen5, rect2.X, rect2.Y, rect2.Width, rect2.Height);':-) – LarsTech

+0

실제로 @LarsTech, 그것을 추가하고 싶지만 매개 변수 순서를 기억하는 것은 언제나 피타 (PITA)입니다. – DavidG

2

: RectangleRectangleF의 여러 변화를 시도, 아무도 .. 최종 결과는 다음과 같아야 함께 작동하지 않습니다. Graphics 클래스에 대해

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

MSDN는 (많이) 제공 정보 : DrawRectangle() :

는 단일 버전을 사용합니다.

희망이 도움이됩니다.

+0

내 부분에 실수, 그것은 DrawRectangle 있어야합니다, 난 하나만 필요하지만, 모든 기능을 플로트 값을 받아야하므로 일할 수 있습니다 :) – Romy

+0

@ Romy를 도와 줘서 기쁘다! 쉬운 실수. 완료되면 답변으로 표시하는 것을 잊지 마십시오. 즐거운 프로그래밍 :) –

+0

여분의 "s"는 실수 였지만 동일한 문제가 여전히 남아 있습니다./ – Romy

관련 문제