Freigeben über


Renderer.Draw-Methode (IntPtr, Stroke)

Zeichnet das Stroke-Objekt in dem Gerätekontext, dessen Handle übergeben wird.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public Sub Draw ( _
    hdc As IntPtr, _
    stroke As Stroke _
)
'Usage
Dim instance As Renderer
Dim hdc As IntPtr
Dim stroke As Stroke

instance.Draw(hdc, stroke)
public void Draw(
    IntPtr hdc,
    Stroke stroke
)
public:
void Draw(
    IntPtr hdc, 
    Stroke^ stroke
)
public void Draw(
    IntPtr hdc,
    Stroke stroke
)
public function Draw(
    hdc : IntPtr, 
    stroke : Stroke
)

Parameter

  • hdc
    Typ: System.IntPtr
    Das Handle des Gerätekontexts, in dem gezeichnet werden soll.

Hinweise

Hinweis

Verwenden Sie nach Möglichkeit statt einer Überladung, die ein IntPtr akzeptiert, die entsprechende Überladung, die ein Graphics-Objekt akzeptiert.

Die Stiftbreite wird entsprechend der Verwendung der SetViewTransform-Methode angepasst. Insbesondere wird die Stiftbreite mit der Quadratwurzel der Determinanten der Ansichtstransformation multipliziert (bzw. skaliert).

Hinweis

Wenn die Stiftbreite nicht explizit festgelegt wurde, beträgt sie standardmäßig 53. Sie müssen die Stiftbreite mit der Quadratwurzel der Determinanten multiplizieren, um das ordnungsgemäße umgebende Rechteck zu erhalten. Die Höhe und Breite des umgebenden Rechtecks werden in jede Richtung um die Hälfte dieses Betrags erweitert.

Angenommen, die Stiftbreite beträgt 53, die Quadratwurzel der Determinante ist 50, und das umgebende Rechteck ist (0,0,1000,1000). Die Anpassung der Stiftbreite an das umgebende Rechteck in jede Richtung wird als (53*50)/2 berechnet, und die rechte und untere Seite werden um eins erhöht. Dies führt zu dem gerenderten umgebenden Rechteck (-1325, -1325, 2326, 2326).

Das Renderer-Objekt erzwingt, dass der Ursprung von Viewports und Fenstern auf 0,0 festgelegt wird. Alle vorhandenen Einstellungen werden gespeichert und wiederhergestellt, jedoch nicht vom Renderer verwendet. Um einen Bildlauf auszuführen, verwenden Sie die GetViewTransform-Methode und die GetObjectTransform-Methode des Renderer-Objekts.

ms569824.alert_security(de-de,VS.90).gifSicherheitshinweis:

Bei Verwendung mit teilweiser Vertrauenswürdigkeit sind für diese Methode die SecurityPermissionFlag.UnmanagedCode-Berechtigung sowie die von InkCollector geforderten Berechtigungen erforderlich. Weitere Informationen zu Sicherheitsproblemen und teilweiser Vertrauenswürdigkeit finden Sie unter Security and Trust.

Beispiele

In diesem Beispiel wird ein Stroke-Objekt in einem Ink-Objekt erstellt. Der Strich hat die Form des englischen Buchstabens N. Nach der Erstellung wird der Strich in dem Panel, das dem InkOverlay-Objekt zugeordnet ist, sowie in einem anderen Bereich angezeigt. Dies wird durch zweimaliges Aufrufen der Draw-Methode erreicht, mit der verschiedene Werte für Gerätekontexthandles an den hdc-Parameter übergeben werden.

Using g1 As Graphics = mInkOverlay.AttachedControl.CreateGraphics()
    ' create the stroke
    Dim strokePoints() As Point = _
           { _
               New Point(200, 4000), _
               New Point(200, 200), _
               New Point(3000, 4000), _
               New Point(3000, 200) _
           }
    Dim oneStroke As Stroke = mInkOverlay.Ink.CreateStroke(strokePoints)
    ' draw the stroke on the control attached to InkOverlay
    ' get the handle to the device context
    Dim hdc1 As IntPtr = g1.GetHdc()
    ' draw the stroke
    mInkOverlay.Renderer.Draw(hdc1, oneStroke)
    ' release the handle to the device context
    g1.ReleaseHdc(hdc1)
    ' now draw the stroke on another control also
    Using g2 As Graphics = Me.panelForDraw.CreateGraphics()
        ' get the handle to the device context
        Dim hdc2 As IntPtr = g2.GetHdc()
        ' draw the stroke
        mInkOverlay.Renderer.Draw(hdc2, oneStroke)
        ' release the handle to the device context
        g2.ReleaseHdc(hdc1)
    End Using
End Using
using (Graphics g1 = mInkOverlay.AttachedControl.CreateGraphics())
{
    // create the stroke
    Point[] strokePoints = new Point[4] 
        { 
            new Point(200,  4000), 
            new Point(200, 200),
            new Point(3000, 4000),
            new Point(3000, 200)
        };

    Stroke oneStroke = mInkOverlay.Ink.CreateStroke(strokePoints);
    // draw the stroke on the control attached to InkOverlay
    // get the handle to the device context
    IntPtr hdc1 = g1.GetHdc();
    // draw the stroke
    mInkOverlay.Renderer.Draw(hdc1, oneStroke);
    // release the handle to the device context
    g1.ReleaseHdc(hdc1);
    // now draw the stroke on another control also
    using (Graphics g2 = this.panelForDraw.CreateGraphics())
    {
        // get the handle to the device context
        IntPtr hdc2 = g2.GetHdc();
        // draw the stroke
        mInkOverlay.Renderer.Draw(hdc2, oneStroke);
        // release the handle to the device context
        g2.ReleaseHdc(hdc1);
    }
}

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

Renderer-Klasse

Renderer-Member

Draw-Überladung

Microsoft.Ink-Namespace

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke