Condividi tramite


Metodo Renderer.Draw (IntPtr, Stroke)

Aggiornamento: novembre 2007

Disegna l'oggetto Stroke sul contesto di dispositivo il cui handle viene passato.

Spazio dei nomi:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Sintassi

'Dichiarazione
Public Sub Draw ( _
    hdc As IntPtr, _
    stroke As Stroke _
)
'Utilizzo
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
)

Parametri

  • hdc
    Tipo: System.IntPtr
    Handle del contesto di dispositivo su cui disegnare.

Note

Nota

Utilizzare l'overload appropriato che accetta un oggetto Graphics anziché quello che accetta un oggetto IntPtr, quando possibile.

Lo spessore di penna viene regolato in modo appropriato, in base alla modalità di utilizzo del metodo SetViewTransform. In particolare, lo spessore della penna viene moltiplicato (o ridimensionato) per la radice quadrata del determinante della trasformazione della visualizzazione.

Nota

Se lo spessore della penna non viene impostato in modo esplicito, il valore predefinito è 53. È necessario moltiplicare lo spessore della penna per la radice quadrata del determinante per produrre il riquadro corretto. L'altezza e la larghezza del riquadro sono espanse della metà di questa quantità in ogni direzione.

Ad esempio, si consideri che lo spessore della penna sia 53, la radice quadrata del determinante sia 50 e il riquadro sia (0, 0, 1000, 1000). La regolazione dello spessore della penna nel riquadro in ogni direzione viene calcolata come (53 * 50)/2 e i lati destro e inferiore vengono incrementati di uno. Il risultato è un riquadro di cui è stato eseguito il rendering di (-1325,-1325,2326,2326).

L'oggetto Renderer impone l'impostazione delle origini del riquadro di visualizzazione e della finestra su 0,0. Qualsiasi impostazione esistente viene salvata e ripristinata, ma non viene utilizzata da Renderer. Per lo scorrimento, utilizzare i metodi GetViewTransform e GetObjectTransform dell'oggetto Renderer.

ms569824.alert_security(it-it,VS.90).gifNota sulla sicurezza:

Se utilizzato in attendibilità parziale, questo metodo richiede l'autorizzazione SecurityPermissionFlag.UnmanagedCode, oltre alle autorizzazioni richieste da InkCollector. Per ulteriori informazioni sui problemi di sicurezza e sull'attendibilità parziale, vedere Security and Trust.

Esempi

In questo esempio viene creato un oggetto Stroke in un oggetto Ink. Il tratto ha la forma della lettera N. Una volta creato, il tratto viene visualizzato nel Panel associato all'oggetto InkOverlay, nonché su un altro pannello. A tale scopo è possibile chiamare due volte il metodo Draw, passando diversi valori dell'handle del contesto di dispositivo al parametro hdc.

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);
    }
}

Piattaforme

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Informazioni sulla versione

.NET Framework

Supportato in: 3.0

Vedere anche

Riferimenti

Renderer Classe

Membri Renderer

Overload Draw

Spazio dei nomi Microsoft.Ink

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke