Metodo Renderer.Draw (IntPtr, Strokes)
Aggiornamento: novembre 2007
Disegna l'insieme Strokes sul contesto di dispositivo il cui handle viene passato.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Sintassi
'Dichiarazione
<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _
<UIPermissionAttribute(SecurityAction.Demand, Window := UIPermissionWindow.SafeTopLevelWindows)> _
<SecurityPermissionAttribute(SecurityAction.Demand, UnmanagedCode := True)> _
Public Sub Draw ( _
hdc As IntPtr, _
strokes As Strokes _
)
'Utilizzo
Dim instance As Renderer
Dim hdc As IntPtr
Dim strokes As Strokes
instance.Draw(hdc, strokes)
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
[UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows)]
[SecurityPermissionAttribute(SecurityAction.Demand, UnmanagedCode = true)]
public void Draw(
IntPtr hdc,
Strokes strokes
)
[PermissionSetAttribute(SecurityAction::InheritanceDemand, Name = L"FullTrust")]
[UIPermissionAttribute(SecurityAction::Demand, Window = UIPermissionWindow::SafeTopLevelWindows)]
[SecurityPermissionAttribute(SecurityAction::Demand, UnmanagedCode = true)]
public:
void Draw(
IntPtr hdc,
Strokes^ strokes
)
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
/** @attribute UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows) */
/** @attribute SecurityPermissionAttribute(SecurityAction.Demand, UnmanagedCode = true) */
public void Draw(
IntPtr hdc,
Strokes strokes
)
public function Draw(
hdc : IntPtr,
strokes : Strokes
)
Parametri
- hdc
Tipo: System.IntPtr
Handle del contesto di dispositivo su cui disegnare.
- strokes
Tipo: Microsoft.Ink.Strokes
Insieme Strokes da disegnare.
Note
Nota
Utilizzare l'overload appropriato che accetta un oggetto Graphics anziché quello che accetta un oggetto IntPtr, quando possibile.
Lo spessore della 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.
Nota 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 l'intero insieme Strokes di un oggetto Ink associato a un oggetto InkOverlay viene visualizzato in un Panel diverso da quello associato all'oggetto InkOverlay stesso. A tale scopo è possibile chiamare il metodo Draw, passando al parametro hdc l'handle di un contesto di dispositivo diverso da quello associato all'oggetto InkOverlay.
' 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()
' get the handle to the device context
Dim hdc As IntPtr = g.GetHdc()
' draw the strokes
R.Draw(hdc, allStrokes)
' release the handle to the device context
g.ReleaseHdc(hdc)
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();
// get the handle to the device context
IntPtr hdc = g.GetHdc();
// draw the strokes
R.Draw(hdc, allStrokes);
// release the handle to the device context
g.ReleaseHdc();
}
}
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