Renderer.Draw, méthode (IntPtr, Stroke)
Mise à jour : November 2007
Dessine l'objet Stroke sur le contexte de périphérique dont le handle est passé.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Sub Draw ( _
hdc As IntPtr, _
stroke As Stroke _
)
'Utilisation
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
)
Paramètres
- hdc
Type : System.IntPtr
Handle du contexte de périphérique sur lequel dessiner.
- stroke
Type : Microsoft.Ink.Stroke
Objet Stroke à dessiner.
Notes
Remarque : |
---|
Si possible, utilisez la surcharge appropriée qui accepte un objet Graphics (page pouvant être en anglais) plutôt que celle qui accepte un IntPtr (page pouvant être en anglais). |
La largeur du stylet est ajustée en fonction de la façon dont vous utilisez la méthode SetViewTransform. Spécifiquement, la largeur du stylet est multipliée (ou a mise à l'échelle) par la racine carrée du déterminant de la transformation d'affichage.
Remarque : |
---|
Si vous n'avez pas explicitement affecté de valeur à la largeur du stylet, la largeur par défaut est 53. Vous devez multiplier la largeur du stylet par la racine carrée du déterminant pour obtenir le cadre englobant approprié. La hauteur et la largeur du cadre englobant sont augmentées de la moitié de cette valeur dans chaque direction. |
Par exemple, si la largeur du stylet est 53, la racine carrée du déterminant est 50 et le cadre englobant est (0, 0, 1000, 1000). Le réglage de la largeur du stylet au cadre englobant dans chaque direction est calculé de la façon suivante : (53 * 50) / 2 . Le côté droit et le bas sont incrémentés d'une unité. Un cadre englobant rendu de (-1325, -1325, 2326, 2326) est créé.
L'objet Renderer force l'affectation de la valeur 0,0 pour les origines des fenêtres d'affichage. Tous les paramètres existants sont enregistrés et restaurés, mais ils ne sont pas utilisés par le Renderer. Pour procéder au défilement, utilisez les méthodes GetViewTransform et GetObjectTransform de l'objet Renderer.
Note de sécurité : |
---|
Lors de l'utilisation en situation de confiance partielle, cette méthode requiert l'autorisation SecurityPermissionFlag.UnmanagedCode (page pouvant être en anglais), en plus des autorisations requises par InkCollector. Pour plus d'informations sur les problèmes de sécurité et la confiance partielle, consultez Security and Trust. |
Exemples
Dans cet exemple, un objet Stroke est créé dans un objet Ink. Le trait a la forme de la lettre anglaise N. Une fois créé, le trait est affiché dans le Panel (page pouvant être en anglais) associé à l'objet InkOverlay ainsi que sur un autre panneau. Pour ce faire, on appelle deux fois la méthode Draw, en passant différentes valeurs du handle de contexte de périphérique au paramètre 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);
}
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0