InkStrokeRenderingSegment Clase

Definición

Un único segmento de un trazo de lápiz completo.

Un único segmento consta de un punto inicial, un punto final y dos puntos de control Bezier. Sin embargo, para una serie de segmentos que componen un trazo, el último punto del segmento anterior es el primer punto del segmento actual. Esto significa que solo se requiere el punto final de cada segmento para representar un trazo completo.

Cada trazo es un vector de objetos InkStrokeRenderingSegment con el primer segmento identificado por un único punto inicial y todos los segmentos restantes identificados por un punto final y dos puntos de control Bezier.

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
Herencia
Object Platform::Object IInspectable InkStrokeRenderingSegment
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

La función del ejemplo siguiente muestra cómo se puede derivar una curva Bézier cúbica para cada segmento de un trazo de lápiz (stroke).

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;
}

Comentarios

Establezca la propiedad FitToCurve de DrawingAttributes en true si desea que se represente un trazo de lápiz con curvas Bezier cúbicas. De lo contrario, el trazo se representa con segmentos de línea recta.

Propiedades

BezierControlPoint1

Obtiene el primer punto de control para la curva Bézier.

BezierControlPoint2

Obtiene el segundo punto de control de la curva Bézier.

Position

Obtiene el punto final del segmento.

Pressure

Obtiene la presión del contacto en la superficie del digitalizador.

TiltX

Obtiene la inclinación del contacto a lo largo del eje x.

TiltY

Obtiene la inclinación del contacto a lo largo del eje y.

Twist

Obtiene el giro del contacto a lo largo del eje rotacional.

Se aplica a

Consulte también