다음을 통해 공유


Renderer.Draw 메서드 (Graphics, Strokes)

업데이트: 2007년 11월

지정된 Graphics 표면에 Strokes 컬렉션을 그립니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink(Microsoft.Ink.dll)

구문

‘선언
Public Sub Draw ( _
    g As Graphics, _
    strokes As Strokes _
)
‘사용 방법
Dim instance As Renderer
Dim g As Graphics
Dim strokes As Strokes

instance.Draw(g, strokes)
public void Draw(
    Graphics g,
    Strokes strokes
)
public:
void Draw(
    Graphics^ g, 
    Strokes^ strokes
)
public void Draw(
    Graphics g,
    Strokes strokes
)
public function Draw(
    g : Graphics, 
    strokes : Strokes
)

매개 변수

설명

참고

가능하면 IntPtr을 받는 오버로드 대신 Graphics 개체를 받는 적절한 오버로드를 사용해야 합니다.

SetViewTransform 메서드를 사용하는 방법에 따라 펜 너비가 적절히 조정됩니다. 즉, 펜 너비에 뷰 변환 행렬식의 제곱근을 곱하여 배율을 조정합니다.

참고

펜 너비를 명시적으로 설정하지 않은 경우 기본값은 53입니다. 올바른 경계 상자를 그리려면 펜 너비에 행렬식의 제곱근을 곱해야 합니다. 경계 상자의 높이와 너비는 각 방향으로 이 거리의 절반만큼 확장됩니다.

예를 들어 펜 너비가 53이고, 행렬식의 제곱근이 50이고, 경계 상자가 (0, 0, 1000, 1000)이라고 가정해 봅니다. 경계 상자에 대한 펜 너비 조정은 각 방향으로 (53*50)/2로 계산되고 오른쪽과 아래쪽은 1만큼 늘어납니다. 따라서 경계 상자가 (-1325,-1325,2326,2326)으로 렌더링됩니다.

Renderer 개체는 뷰포트 및 창 원점을 0,0으로 설정합니다. 기존 설정은 모두 저장 및 복원되지만 Renderer에서 사용되지는 않습니다. 스크롤을 수행하려면 Renderer 개체의 GetViewTransformGetObjectTransform 메서드를 사용합니다.

예제

이 예제에서는 InkOverlay 개체에 연결된 Ink 개체에서 가져온 전체 Strokes 컬렉션을 InkOverlay 개체 자체에 연결되지 않은 Panel에 표시합니다. 이 작업을 수행하기 위해 InkOverlay 개체에 연결되지 않은 Graphics 개체를 g 매개 변수에 전달하여 Draw 메서드를 호출합니다.

' Access to the Ink.Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
    ' get a graphics object for another panel
    Using g As Graphics = Me.panelForDraw.CreateGraphics()
        ' get a Renderer object. We could have used
        ' mInkOverlay.Renderer, this is another way
        Dim R As Renderer = New Renderer()
        ' draw the strokes
        R.Draw(g, allStrokes)
    End Using
End Using
// Access to the Ink.Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
    // get a graphics object for another panel
    using (Graphics g = this.panelForDraw.CreateGraphics())
    {
        // get a Renderer object. We could have used
        // mInkOverlay.Renderer, this is another way
        Renderer R = new Renderer();
        // draw the strokes
        R.Draw(g, allStrokes);
    }
}

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

Renderer 클래스

Renderer 멤버

Draw 오버로드

Microsoft.Ink 네임스페이스

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke