共用方式為


Renderer.Draw 方法 (Graphics, Stroke)

在指定的 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
)

參數

備註

ms569828.alert_note(zh-tw,VS.90).gif注意事項:

盡可能使用接受 Graphics (英文) 物件的適當多載,而不要使用接受 IntPtr (英文) 的多載。

畫筆寬度會根據您使用 SetViewTransform 方法的方式適當調整。具體來說,畫筆寬度會乘以檢視轉換之行列式的平方根 (或據以調整)。

ms569828.alert_note(zh-tw,VS.90).gif注意事項:

如果尚未明確設定畫筆寬度,則預設為 53。您必須將畫筆寬度乘以行列式的平方根,才能得出正確的週框方塊。週框方塊的高度和寬度會依這個數目的一半,朝各方向放大。

例如,試想畫筆寬度為 53,行列式的平方根為 50,而且週框方塊為 (0,0,1000,1000)。依據週框方塊朝各方向調整的畫筆寬度計算方式為 (53*50)/2,右邊和底部則會加一。這樣會產生週框方塊 (-1325,-1325,2326,2326)。

Renderer 物件會強制將檢視區和視窗原點設定為 0,0。任何現有的設定都會被儲存及還原,但不會被 Renderer 使用。若要執行捲動,請使用 Renderer 物件的 GetViewTransformGetObjectTransform 方法。

範例

在這個範例中,會在 Ink 物件中建立 Stroke 物件。筆劃會從筆墨區域的左上角經過右下角。在建立後,筆劃會顯示在與 InkOverlay 物件相關聯的 Panel (英文) 以及另一個面板上。這個動作的完成是藉由呼叫兩次 Draw 方法,將另一個 Graphics (英文) 物件傳遞至 g 參數。

' 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