InkCollector.Renderer, propriété
Mise à jour : November 2007
Obtient ou définit l'objet Renderer utilisé pour tracer l'entrée manuscrite.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Property Renderer As Renderer
'Utilisation
Dim instance As InkCollector
Dim value As Renderer
value = instance.Renderer
instance.Renderer = value
public Renderer Renderer { get; set; }
public:
property Renderer^ Renderer {
Renderer^ get ();
void set (Renderer^ value);
}
/** @property */
public Renderer get_Renderer()
/** @property */
public void set_Renderer(Renderer value)
public function get Renderer () : Renderer
public function set Renderer (value : Renderer)
Valeur de propriété
Type : Microsoft.Ink.Renderer
Objet Renderer utilisé pour tracer l'entrée manuscrite.
Notes
Lorsque vous gérez certains messages de fenêtre, la modification du Renderer associé au InkCollector peut provoquer un appel réentrant à une fonction et générer des résultats inattendus. Par exemple, le passage à un autre Renderer ou la modification de ses transformations dans un gestionnaire de messages peut provoquer un appel réentrant. Cela affecte les messages suivants : WM_ACTIVATE, WM_ACTIVATEAPP, WM_NCACTIVATE, WM_PAINT, WM_SYSCOMMAND si wParam a la valeur SC_HOTKEY ou SC_TASKLIST, et WM_SYSKEYDOWN (lors du traitement des combinaisons de touches Alt-Tab ou Alt-Échap). Cette opération pose problème dans les applications de modèle de threads STA (single threaded apartment).
Exemples
L'exemple suivant montre comment utiliser un autre objet Renderer pour zoomer lors de l'affichage d'un objet InkCollector, InkOverlay ou InkPicture.
Avant l'utilisation de l'autre objet Renderer, il est initialisé pour fournir la transformation de zoom souhaitée, et l'objet Renderer d'origine est enregistré pour reprendre son comportement de rendu par défaut.
zoomRenderer = New Renderer()
Dim zoomBy2 As Matrix = New Matrix()
zoomBy2.Scale(2, 2)
zoomRenderer.SetObjectTransform(zoomBy2)
' mInkObject can be InkCollector, InkOverlay, or InkPicture
origRenderer = mInkObject.Renderer
zoomRenderer = new Renderer();
Matrix zoomBy2 = new Matrix();
zoomBy2.Scale(2, 2);
zoomRenderer.SetObjectTransform(zoomBy2);
// mInkObject can be InkCollector, InkOverlay, or InkPicture
origRenderer = mInkObject.Renderer;
En réponse à l'événement CheckChanged d'un objet CheckBox (page pouvant être en anglais), l'objet Renderer approprié est assigné et la zone d'entrée manuscrite est redessinée.
If DirectCast(sender, CheckBox).Checked Then
' mInkObject can be InkCollector, InkOverlay, or InkPicture
mInkObject.Renderer = zoomRenderer
Else
mInkObject.Renderer = origRenderer
End If
' refresh to show the transformed ink. In production code
' you should invalidate only the necessary area that is
' affected by the transformation but for simplicity here
' we will invalidate the entire form
Me.Refresh()
if (((CheckBox)sender).Checked)
{
// mInkObject can be InkCollector, InkOverlay, or InkPicture
mInkObject.Renderer = zoomRenderer;
}
else
{
mInkObject.Renderer = origRenderer;
}
// refresh to show the transformed ink. In production code
// you should invalidate only the necessary area that is
// affected by the transformation but for simplicity here
// we will invalidate the entire form
this.Refresh();
L'exemple suivant présente l'utilisation d'un objet Renderer pour convertir un rectangle exprimé en coordonnées d'espace d'entrée manuscrite en un rectangle exprimé en pixels.
Private Function InkSpaceToPixelRectangle(ByVal inkRectangle As Rectangle) As Rectangle
' Get points for corners of rectangle
Dim leftTop As Point = inkRectangle.Location
Dim rightBottom As Point = New Point(inkRectangle.Right, inkRectangle.Bottom)
' Convert using a Renderer object
Dim tGraphics As Graphics = CreateGraphics()
Dim tRenderer As Renderer = New Renderer()
tRenderer.InkSpaceToPixel(tGraphics, leftTop)
tRenderer.InkSpaceToPixel(tGraphics, rightBottom)
' Clean up
tGraphics.Dispose()
' Return new rectangle
Return New Rectangle(leftTop, New Size(rightBottom.X - leftTop.X, rightBottom.Y - leftTop.Y))
End Function
private Rectangle InkSpaceToPixelRectangle(Rectangle inkRectangle)
{
// Get points for corners of rectangle
Point leftTop = inkRectangle.Location;
Point rightBottom = new Point(inkRectangle.Right, inkRectangle.Bottom);
// Convert using a Renderer object
Graphics tGraphics = CreateGraphics();
Renderer tRenderer = new Renderer();
tRenderer.InkSpaceToPixel(tGraphics, ref leftTop);
tRenderer.InkSpaceToPixel(tGraphics, ref rightBottom);
// Clean up
tGraphics.Dispose();
// Return new rectangle
return new Rectangle(leftTop, new Size(rightBottom.X - leftTop.X, rightBottom.Y - leftTop.Y));
}
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