Freigeben über


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

  • 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

Siehe auch

Referenz

Stroke-Klasse

Stroke-Member

Transform-Überladung

Microsoft.Ink-Namespace

Transform

Stroke.Move

Stroke.Rotate

Strokes.Transform