Stroke.Transform-Methode (Matrix, Boolean)
Wendet eine lineare Transformation auf ein Stroke-Objekt an, wobei die Möglichkeit besteht, diese Transformation auf die Stiftbreite anzuwenden.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public Sub Transform ( _
inkTransform As Matrix, _
applyOnPenWidth As Boolean _
)
'Usage
Dim instance As Stroke
Dim inkTransform As Matrix
Dim applyOnPenWidth As Boolean
instance.Transform(inkTransform, applyOnPenWidth)
public void Transform(
Matrix inkTransform,
bool applyOnPenWidth
)
public:
void Transform(
Matrix^ inkTransform,
bool applyOnPenWidth
)
public void Transform(
Matrix inkTransform,
boolean applyOnPenWidth
)
public function Transform(
inkTransform : Matrix,
applyOnPenWidth : boolean
)
Parameter
- inkTransform
Typ: System.Drawing.Drawing2D.Matrix
Die System.Drawing.Drawing2D.Matrix-Transformation, die auf das Stroke-Objekt angewendet werden soll.
- applyOnPenWidth
Typ: System.Boolean
Der boolesche Wert, der angibt, ob die Transformation auf die Breite der Freihandeingabe im DrawingAttributes-Attribut desStroke-Objekts angewendet werden soll.Wert
Bedeutung
true
Die Transformation wird auf die Punkte und die Stiftbreite angewendet.
false
Die Transformation wird nur auf die Punkte angewendet.
Hinweise
Die lineare Transformation kann Skalierung, Drehung, Verschiebung und Kombinationen von Transformationen darstellen.
Wenn die Stiftbreite für die Transformation entsprechend skaliert wird, wird die gezeichnete Stiftbreite berechnet, indem die angegebene Stiftbreite (oder die Standardbreite 53, falls keine Breite angegeben wird) mit der Quadratwurzel der Transformationsdeterminanten multipliziert wird.
Beispiele
In diesem C#-Beispiel wird ein Stroke-Objekt namens theStroke um den Faktor 2 um den Mittelpunkt des den Strich umgebenden Rechtecks skaliert. Außerdem wird die Breite der Freihandeingabe um den Faktor 2 skaliert.
using System.Drawing.Drawing2D;
//...
Matrix inkTransform = new Matrix();
Rectangle inkBounds = theStroke.GetBoundingBox();
PointF center = new PointF(0.5f * (inkBounds.Left + inkBounds.Right),
0.5f * (inkBounds.Top + inkBounds.Bottom));
// Translate to center of bounding box
inkTransform.Translate(center.X, center.Y);
// Scale by factor of 2
inkTransform.Scale(2.0F, 2.0F);
// Translate back
inkTransform.Translate(-center.X, -center.Y);
// Transform stroke
theStroke.Transform(inkTransform, true);
In diesem Microsoft Visual Basic .NET-Beispiel wird ein Stroke-Objekt namens theStroke um den Faktor 2 um den Mittelpunkt des den Strich umgebenden Rechtecks skaliert. Außerdem wird die Breite der Freihandeingabe um den Faktor 2 skaliert.
Imports System.Drawing.Drawing2D
'...
Dim inkTransform As New Matrix()
Dim inkBounds As Rectangle = theStroke.GetBoundingBox()
Dim center As New PointF(0.5F * (inkBounds.Left + inkBounds.Right), _
0.5F * (inkBounds.Top + inkBounds.Bottom))
'Translate to center of bounding box
inkTransform.Translate(center.X, center.Y)
'Scale by a factor of 2
inkTransform.Scale(2.0F, 2.0F)
'Translate back
inkTransform.Translate(-center.X, -center.Y)
'Transform stroke
theStroke.Transform(inkTransform, True)
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0