InkStrokeRenderingSegment クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
完全なインク ストロークの 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
- 継承
- 属性
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 次ベジエ曲線でインク ストロークをレンダリングする場合は、DrawingAttributes の FitToCurve プロパティを true に設定します。 それ以外の場合、ストロークは直線セグメントでレンダリングされます。
プロパティ
BezierControlPoint1 |
ベジエ曲線の最初のコントロール ポイントを取得します。 |
BezierControlPoint2 |
ベジエ曲線の 2 番目のコントロール ポイントを取得します。 |
Position |
セグメントの終点を取得します。 |
Pressure |
デジタイザーサーフェス上の接触の圧力を取得します。 |
TiltX |
x 軸に沿った接触の傾きを取得します。 |
TiltY |
y 軸に沿った接触の傾きを取得します。 |
Twist |
回転軸に沿った接触のひねりを取得します。 |
適用対象
こちらもご覧ください
- ペン操作とスタイラス操作
- 作業の開始: UWP アプリでのインクのサポート
- インクの分析のサンプル (基本) (C#)
- インクの手書き認識のサンプル (C#)
- インク ストロークを Ink Serialized Format (ISF) ファイルに保存し、読み込む
- インク ストロークをクリップボードに保存し、読み込む
- インク ツール バーの位置と向きのサンプル (基本)
- インク ツール バーの位置と向きのサンプル (動的)
- 塗り絵帳のサンプル
- Family Notes のサンプル
- 入力: 簡略化されたインクのサンプル
- 単純な手描き入力のサンプル (C#/C++)
- 複雑な手描き入力のサンプル (C++)
- インク分析のサンプル