Share via


InkStrokeRenderingSegment Klasse

Definition

Ein einzelnes Segment eines vollständigen Freihandstrichs.

Ein einzelnes Segment besteht aus einem Startpunkt, einem Endpunkt und zwei Bézier-Steuerungspunkten. Für eine Reihe von Segmenten, die einen Strich bilden, ist der letzte Punkt des vorherigen Segments jedoch der erste Punkt des aktuellen Segments. Dies bedeutet, dass nur der Endpunkt für jedes Segment erforderlich ist, um einen vollständigen Strich darzustellen.

Jeder Strich ist ein Vektor von InkStrokeRenderingSegment-Objekten, wobei das erste Segment durch einen einzelnen Startpunkt und alle verbleibenden Segmente durch einen Endpunkt und zwei Bézier-Kontrollpunkte identifiziert werden.

public ref class InkStrokeRenderingSegment sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class InkStrokeRenderingSegment final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class InkStrokeRenderingSegment
Public NotInheritable Class InkStrokeRenderingSegment
Vererbung
Object Platform::Object IInspectable InkStrokeRenderingSegment
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Die Funktion im folgenden Beispiel veranschaulicht, wie eine kubische Bézierkurve für jedes Segment eines Freihandstrichs (stroke) abgeleitet werden kann.

public static Windows.UI.Xaml.Shapes.Path CreateBezierPath(Windows.UI.Input.Inking.InkStroke stroke)
{
    // Create Bezier geometries using information provided by the stroke's segments
    var figure = new Windows.UI.Xaml.Media.PathFigure();
    var segments = stroke.GetRenderingSegments().GetEnumerator();
    segments.MoveNext();
    // First segment is degenerate and corresponds to initial position
    figure.StartPoint = segments.Current.Position;
    // Now loop through all remaining segments
    while (segments.MoveNext())
    {
        var bs = new Windows.UI.Xaml.Media.BezierSegment();
        bs.Point1 = segments.Current.BezierControlPoint1;
        bs.Point2 = segments.Current.BezierControlPoint2;
        bs.Point3 = segments.Current.Position;
        figure.Segments.Add(bs);
    }

    // Create and initialize the data structures necessary to render the figure
    var geometry = new Windows.UI.Xaml.Media.PathGeometry();
    geometry.Figures.Add(figure);
    var path = new Windows.UI.Xaml.Shapes.Path();
    path.Data = geometry;

    // Set the stroke's graphical properties, which are controlled by the Path object
    path.Stroke = new Windows.UI.Xaml.Media.SolidColorBrush(stroke.DrawingAttributes.Color);
    path.StrokeThickness = stroke.DrawingAttributes.Size.Width;
    path.StrokeLineJoin = Windows.UI.Xaml.Media.PenLineJoin.Round;
    path.StrokeStartLineCap = Windows.UI.Xaml.Media.PenLineCap.Round;

    return path;
}

Hinweise

Legen Sie die FitToCurve-Eigenschaft von DrawingAttributes auf true fest, wenn ein Freihandstrich mit kubischen Bézierkurven gerendert werden soll. Andernfalls wird der Strich mit geraden Liniensegmenten gerendert.

Eigenschaften

BezierControlPoint1

Ruft den ersten Steuerungspunkt für die Bézierkurve ab.

BezierControlPoint2

Ruft den zweiten Steuerungspunkt für die Bézierkurve ab.

Position

Ruft den Endpunkt des Segments ab.

Pressure

Ruft den Druck des Kontakts auf der Digitizeroberfläche ab.

TiltX

Ruft die Neigung des Kontakts entlang der x-Achse ab.

TiltY

Ruft die Neigung des Kontakts entlang der y-Achse ab.

Twist

Ruft die Drehung des Kontakts entlang der Drehachse ab.

Gilt für:

Weitere Informationen