InkStrokeRenderingSegment Classe

Definição

Um único segmento de um traço de tinta completo.

Um único segmento consiste em um ponto de partida, um ponto final e dois pontos de controle bezier. No entanto, para uma série de segmentos que compõem um traço, o último ponto do segmento anterior é o primeiro ponto do segmento atual. Isso significa que apenas o ponto final de cada segmento é necessário para representar um traço completo.

Cada traço é um vetor de objetos InkStrokeRenderingSegment com o primeiro segmento identificado por um único ponto de partida e todos os segmentos restantes identificados por um ponto final e dois pontos de controle 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
Herança
Object Platform::Object IInspectable InkStrokeRenderingSegment
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

A função no exemplo a seguir demonstra como uma curva de Bézier cúbica pode ser derivada para cada segmento de um traço de tinta (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;
}

Comentários

Defina a propriedade FitToCurve de DrawingAttributes como true se você quiser que um traço de tinta seja renderizado com curvas de Bézier cúbicas. Caso contrário, o traço é renderizado com segmentos de linha reta.

Propriedades

BezierControlPoint1

Obtém o primeiro ponto de controle para a curva de Bézier.

BezierControlPoint2

Obtém o segundo ponto de controle para a curva de Bézier.

Position

Obtém o ponto final do segmento.

Pressure

Obtém a pressão do contato na superfície do digitalizador.

TiltX

Obtém a inclinação do contato ao longo do eixo x.

TiltY

Obtém a inclinação do contato ao longo do eixo y.

Twist

Obtém a torção do contato ao longo do eixo rotacional.

Aplica-se a

Confira também