Freigeben über


Strokes.Transform-Methode (Matrix, Boolean)

Wendet eine lineare Transformation auf eine Strokes-Auflistung 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 Strokes
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 in den DrawingAttributes desStroke-Objekts in der Strokes-Auflistung 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 Beispiel wird die Strokes-Auflistung, die an ein InkOverlay-Objekt angehängt ist, um den Faktor zwei skaliert. Die Skalierung erfolgt um den Mittelpunkt des umgebenden Felds der Strokes-Auflistung. Außerdem wird die Breite der Freihandeingabe um den Faktor 2 skaliert.

' Access to the Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes

    Dim inkTransform As Matrix = New Matrix()
    Dim bounds As Rectangle = allStrokes.GetBoundingBox()
    Dim center As PointF = _
        New PointF(0.5F * (bounds.Left + bounds.Right), _
                   0.5F * (bounds.Top + bounds.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 strokes
    allStrokes.Transform(inkTransform, True)
End Using
// Access to the Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
    Matrix inkTransform = new Matrix();
    Rectangle bounds = allStrokes.GetBoundingBox();
    PointF center = new PointF(0.5f * (bounds.Left + bounds.Right),
                               0.5f * (bounds.Top + bounds.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 strokes
    allStrokes.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

Strokes-Klasse

Strokes-Member

Transform-Überladung

Microsoft.Ink-Namespace

Strokes.Scale

Strokes.Move

Strokes.Rotate

Stroke.Transform