Renderer.PixelToInkSpace, méthode (Graphics, array<Point[]%)
Mise à jour : November 2007
Convertit un tableau d'emplacements en pixels en tableau d'emplacements selon les coordonnées de l'espace d'entrée manuscrite, à l'aide d'un objet Graphics (page pouvant être en anglais).
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Sub PixelToInkSpace ( _
g As Graphics, _
ByRef pts As Point() _
)
'Utilisation
Dim instance As Renderer
Dim g As Graphics
Dim pts As Point()
instance.PixelToInkSpace(g, pts)
public void PixelToInkSpace(
Graphics g,
ref Point[] pts
)
public:
void PixelToInkSpace(
Graphics^ g,
array<Point>^% pts
)
public void PixelToInkSpace(
Graphics g,
/** @ref */Point[] pts
)
public function PixelToInkSpace(
g : Graphics,
pts : Point[]
)
Paramètres
- g
Type : System.Drawing.Graphics
Objet Graphics (page pouvant être en anglais) à utiliser pour la conversion. Il provient généralement des arguments d'un événement ou de la méthode System.Windows.Forms.Control.CreateGraphics (page pouvant être en anglais).
- pts
Type : array<System.Drawing.Point[]%
Tableau de points pour la conversion en emplacements d'espace d'entrée manuscrite.
Notes
La méthode PixelToInkSpace convertit les pixels en espace d'entrée manuscrite (où une unité HIMETRIC = 0,01 mm), applique l'inverse de la transformation d'affichage, puis applique la transformation de l'objet.
Exemples
Dans cet exemple, tous les objets Stroke d'un InkOverlay qui ont au moins 50 % de leurs points à l'intérieur d'une sélection de limite sont mis en rouge. Les points de la sélection de limite décrivent un rectangle qui pivote de 45 degrés autour du centre du contrôle d'entrée manuscrite. On peut rendre visible la sélection de limite en utilisant les points de sélection servant à créer un objet Stroke.
Const RadiusPixel As Integer = 120
' get the control. InkOverlay.AttachedControl must be set
Dim inkControl As Control = mInkOverlay.AttachedControl
' get the center of the ink control
Dim centerPt As Point = New Point(inkControl.Width / 2, inkControl.Height / 2)
' create the boundary points. These points describe a rectangle
' that is rotated around the center 45 degrees (a diamond)
Dim boundaryPts() As Point = _
{ _
New Point(centerPt.X, centerPt.Y - (RadiusPixel / 2)), _
New Point(centerPt.X + (RadiusPixel / 2), centerPt.Y), _
New Point(centerPt.X, centerPt.Y + (RadiusPixel / 2)), _
New Point(centerPt.X - (RadiusPixel / 2), centerPt.Y), _
New Point(centerPt.X, centerPt.Y - (RadiusPixel / 2)) _
}
Using g As Graphics = inkControl.CreateGraphics()
' convert boundary points to ink space coordinates
mInkOverlay.Renderer.PixelToInkSpace(g, boundaryPts)
End Using
' show the tilted rectangle (diamond) by creating a stroke
mInkOverlay.Ink.CreateStroke(boundaryPts)
' Find strokes that are at least 50% inside the boundary points
Dim hitStrokes As Strokes = mInkOverlay.Ink.HitTest(boundaryPts, 50.0F)
' change the strokes that fall inside the boundary points to red
hitStrokes.ModifyDrawingAttributes(New DrawingAttributes(Color.Red))
' invalidate the ink control
inkControl.Invalidate()
const int RadiusPixel = 120;
// get the control. InkOverlay.AttachedControl must be set
Control inkControl = mInkOverlay.AttachedControl;
// get the center of the ink control
Point centerPt = new Point(inkControl.Width / 2, inkControl.Height / 2);
// create the boundary points. These points describe a rectangle
// that is rotated around the center 45 degrees (a diamond)
Point[] boundaryPts = new Point[5]
{
new Point(centerPt.X, centerPt.Y - (RadiusPixel / 2)),
new Point(centerPt.X + (RadiusPixel / 2), centerPt.Y),
new Point(centerPt.X, centerPt.Y + (RadiusPixel / 2)),
new Point(centerPt.X - (RadiusPixel / 2), centerPt.Y),
new Point(centerPt.X, centerPt.Y - (RadiusPixel / 2))
};
using (Graphics g = inkControl.CreateGraphics())
{
// convert boundary points to ink space coordinates
mInkOverlay.Renderer.PixelToInkSpace(g, ref boundaryPts);
}
// show the tilted rectangle (diamond) by creating a stroke
mInkOverlay.Ink.CreateStroke(boundaryPts);
// Find strokes that are at least 50% inside the boundary points
Strokes hitStrokes = mInkOverlay.Ink.HitTest(boundaryPts, 50.0f);
// change the strokes that fall inside the boundary points to red
hitStrokes.ModifyDrawingAttributes(new DrawingAttributes(Color.Red));
// invalidate the ink control
inkControl.Invalidate();
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