インクが収集されると、アプリケーションはそのデータを管理、操作、および他のメディアに転送できます。 インクの選択、コピー、移動、保存、表示、変更のアクションは、Ink オブジェクトとその含まれるメンバー (Stroke コレクションや Stroke オブジェクトなど) で行われます。
手記
Real-Time スタイラスを使用して、アプリケーションは独自の形式 (ストロークの保存など) でデータを維持することを選択できます。
インク、ストローク、パケット
Ink オブジェクトは、InkCollector オブジェクトから収集された入力を管理、操作、格納する基本的なデータ型です。 Ink オブジェクトには、1 つ以上の Stroke オブジェクトと、それらのストロークを管理および操作するための一般的なメソッドとプロパティが含まれています。 ストロークは、1 つのペンダウン、ペン移動、およびペンアップ シーケンスでキャプチャされるデータのセットとして定義されます。 ストローク データには、パケットのコレクションが含まれています。 パケットは、タブレット デバイスが各サンプル ポイントで送信するデータのセットです。 このデータには、座標、筆圧、ペンの角度、ハードウェアが送信できるその他の情報が含まれます。 Stroke オブジェクトの PacketDescription プロパティは、Tablet が生成するパケットを記述します。
ストローク
Ink オブジェクトの Strokes プロパティを使用して、Ink オブジェクト内のストロークのスナップショットを取得できます。 Strokes プロパティは、Strokes プロパティが読み取られた時点で、Ink オブジェクト内のストロークへの参照のコレクションです。 その後、ストロークが Ink オブジェクトに追加または削除された場合、以前に取得した Strokes コレクションは更新されません。 さらに、Strokes プロパティは値であり、他の値と同様に、変数に割り当てない限りスコープ外になります。
Ink オブジェクトと Strokes プロパティの同期を維持するには、Strokes コレクションの StrokesAdded イベントおよび StrokesRemoved イベントのイベント ハンドラーでラップします。 ハンドラーは、いずれかのイベントが発生したときに、Strokes プロパティの新しいコピーを取得する必要があります。 イベントが発生する前にスコープ外の Strokes コレクションにイベント ハンドラーを追加しないように注意してください。
この例では、theAddedStrokesIDs が、StrokesAdded_Event ハンドラーの strokes プロパティの新しいコピーで更新されていることに注意してください。
public void StrokesAdded_Event(object sender, StrokesEventArgs e)
{
int [] theAddedStrokesIDs = e.StrokeIds;
theListBox.Items.Clear();
foreach (int i in theAddedStrokesIDs)
{
theListBox.Items.Add("Added Stroke ID: " + i.ToString());
}
}
PacketDescription プロパティ
Ink オブジェクトの PacketDescription プロパティは、アプリケーションがタブレット PC デバイスから取得する各パケット内の情報のセットを定義します。 通常、この情報には座標が含まれますが、ペン圧やペン角など、より詳細な情報 (タブレット PC デジタイザーの機能に応じて) を含めることができます。 (DesiredPacketDescription プロパティを使用して) インクを収集する前に、InkCollectorまたは inkOverlay オブジェクトにパケットの説明を設定することで、受け取るタブレット PC デバイスのプロパティを完全に制御できます。
拡張プロパティ
拡張プロパティは、アプリケーション定義データを inkやその他のオブジェクトアタッチするためのメカニズムを提供します。 拡張プロパティの詳細については、ExtendedProperties コレクションを参照してください。
インク レンダリング
Renderer オブジェクトは、Inkレンダリングを担当します。 適切なタブレット コンテキストを指定すると、Renderer オブジェクトは、インク空間座標をピクセルにマップしたり、ビュー変換を適用したり、画面やプリンターにインクを表示したりすることができます。 Draw メソッドと DrawStroke メソッドは、インクをレンダリングするための主な方法です。 ウィンドウにインクを表示する方法の詳細については、「Renderer オブジェクト」を参照してください。
尖
通常、ストロークはペンが描画サーフェイスに下がると開始され、ペンが上げられたときに終了します。 ストローク内では、ピーク、角度、および方向の根本的な変化をカズプと呼ばれます。 ストロークのエンドポイントも、カスプと見なされます。 たとえば、大文字 "L" には 3 つのカスプがあり、1 つは中央に、1 つは両端にあります。
ストロークが入力されると、通常はベジエ(またはポリライン)曲線を使用してスムージングおよびレンダリングされます。 ベジエ曲線は、カスプを小さなループに変える可能性があります。 たとえば、筆記体の "i" のピークは、筆記体 "e" に似た形で平滑化される場合があります。 これを防ぐために、Microsoft レンダラーには、カスプを異なる方法で処理する "ベジェ前" フェーズがあります。
また、Cusps を使用して、strokeオブジェクト消去可能な単位に分割することもできます。 たとえば、大文字 "L" の垂直側を選択すると、その辺だけが消去される可能性があります。 消去されるストロークの部分は、2 つのカスプの間の部分になります。