다음을 통해 공유


Renderer.Draw 메서드 (Graphics, Stroke)

업데이트: 2007년 11월

지정된 Graphics 표면에 Stroke 개체를 그립니다.

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

구문

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

instance.Draw(g, stroke)
public void Draw(
    Graphics g,
    Stroke stroke
)
public:
void Draw(
    Graphics^ g, 
    Stroke^ stroke
)
public void Draw(
    Graphics g,
    Stroke stroke
)
public function Draw(
    g : Graphics, 
    stroke : Stroke
)

매개 변수

설명

참고

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

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

참고

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

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

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

예제

이 예제에서는 Ink 개체에 Stroke 개체를 만듭니다. 스트로크는 잉크 영역의 왼쪽 위 모퉁이에서 오른쪽 아래 모퉁이까지 이어집니다. 스트로크를 만든 후 InkOverlay 개체에 연결된 Panel은 물론 다른 패널에도 스트로크를 표시합니다. 이 작업을 수행하기 위해 g 매개 변수에 다른 Graphics 개체를 전달하여 Draw 메서드를 두 번 호출합니다.

' get the bottom right point of the client area for ink
' Note: InkOverlay.AttachedControl property must be set
Dim bottomRight As Point = New Point(mInkOverlay.AttachedControl.ClientSize)
Using g1 As Graphics = mInkOverlay.AttachedControl.CreateGraphics()
    ' convert to HIMETRIC units
    mInkOverlay.Renderer.PixelToInkSpace(g1, bottomRight)
    ' create the stroke
    Dim strokePoints As Point() = New Point(1) {New Point(0), bottomRight}
    Dim oneStroke As Stroke = mInkOverlay.Ink.CreateStroke(strokePoints)
    ' draw the stroke on the control attached to InkOverlay
    mInkOverlay.Renderer.Draw(g1, oneStroke)
    ' now draw the stroke on another control also
    Using g2 As Graphics = Me.panelForDraw.CreateGraphics()
        mInkOverlay.Renderer.Draw(g2, oneStroke)
    End Using
End Using
// get the bottom right point of the client area for ink
// Note: InkOverlay.AttachedControl property must be set
Point bottomRight = new Point(mInkOverlay.AttachedControl.ClientSize);
using (Graphics g1 = mInkOverlay.AttachedControl.CreateGraphics())
{
    // convert to HIMETRIC units
    mInkOverlay.Renderer.PixelToInkSpace(g1, ref bottomRight);
    // create the stroke
    Point[] strokePoints = new Point[2] { new Point(0), bottomRight };
    Stroke oneStroke = mInkOverlay.Ink.CreateStroke(strokePoints);
    // draw the stroke on the control attached to InkOverlay
    mInkOverlay.Renderer.Draw(g1, oneStroke);
    // now draw the stroke on another control also
    using (Graphics g2 = this.panelForDraw.CreateGraphics())
    {
        mInkOverlay.Renderer.Draw(g2, oneStroke);
    }
}

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

Renderer 클래스

Renderer 멤버

Draw 오버로드

Microsoft.Ink 네임스페이스

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke