Поделиться через


InkStrokeRenderingSegment Класс

Определение

Отдельный сегмент полного росчерка рукописного ввода.

Один сегмент состоит из начальной точки, конечной точки и двух контрольных точек Безье. Однако для ряда сегментов, составляющих штрих, последняя точка предыдущего сегмента является первой точкой текущего сегмента. Это означает, что для представления полного росчерка требуется только конечная точка для каждого сегмента.

Каждый штрих является вектором объектов InkStrokeRenderingSegment с первым сегментом, определяемым одной начальной точкой, а все остальные сегменты идентифицируются конечной точкой и двумя контрольными точками Безье.

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
Наследование
Object Platform::Object IInspectable InkStrokeRenderingSegment
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

Функция в следующем примере демонстрирует, как можно получить кубическую кривую Безье для каждого сегмента росчерка рукописного ввода (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;
}

Комментарии

Присвойте свойству FitToCurveсвойства DrawingAttributes значение true, если вы хотите, чтобы росчерк рукописного ввода отображался с помощью кривых Безье. В противном случае штрих отображается с прямыми сегментами.

Свойства

BezierControlPoint1

Возвращает первую контрольную точку для кривой Безье.

BezierControlPoint2

Возвращает вторую контрольную точку для кривой Безье.

Position

Возвращает конечную точку сегмента.

Pressure

Получает давление контакта на поверхность дигитайзера.

TiltX

Получает наклон контакта вдоль оси X.

TiltY

Получает наклон контакта вдоль оси Y.

Twist

Получает поворот контакта вдоль оси вращения.

Применяется к

См. также раздел