InkStrokeRenderingSegment クラス

定義

完全なインク ストロークの 1 つのセグメント。

1 つのセグメントは、開始点、終了点、および 2 つのベジエコントロールポイントで構成されます。 ただし、ストロークを構成する一連のセグメントでは、前のセグメントの最後のポイントが現在のセグメントの最初のポイントになります。 つまり、完全なストロークを表すには、各セグメントの終了点のみが必要です。

各ストロークは InkStrokeRenderingSegment オブジェクトのベクトルであり、最初のセグメントは 1 つの開始点で識別され、残りのすべてのセグメントは終了点と 2 つのベジエコントロールポイントで識別されます。

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) のセグメントごとに 3 次ベジエ曲線を導き出す方法を示しています。

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

注釈

3 次ベジエ曲線でインク ストロークをレンダリングする場合は、DrawingAttributesFitToCurve プロパティを true に設定します。 それ以外の場合、ストロークは直線セグメントでレンダリングされます。

プロパティ

BezierControlPoint1

ベジエ曲線の最初のコントロール ポイントを取得します。

BezierControlPoint2

ベジエ曲線の 2 番目のコントロール ポイントを取得します。

Position

セグメントの終点を取得します。

Pressure

デジタイザーサーフェス上の接触の圧力を取得します。

TiltX

x 軸に沿った接触の傾きを取得します。

TiltY

y 軸に沿った接触の傾きを取得します。

Twist

回転軸に沿った接触のひねりを取得します。

適用対象

こちらもご覧ください