InkManager.ProcessPointerUpdate(PointerPoint) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注意
拡張アプリケーション マークアップ言語 (XAML) を使用するユニバーサル Windows アプリの場合は、InkManager の代わりに InkPresenter と InkCanvas コントロールを使用することをお勧めします。
指定したポインターの位置と状態のプロパティ (圧力や傾きなど) を、最後のポインター イベントから現在のポインター イベントまで処理します。 ProcessPointerDown の後、および ProcessPointerUp の前に、このメソッドを呼び出 します。
重要
このメソッドは、デスクトップ アプリではサポートされていません。
public:
virtual Platform::Object ^ ProcessPointerUpdate(PointerPoint ^ pointerPoint) = ProcessPointerUpdate;
IInspectable ProcessPointerUpdate(PointerPoint const& pointerPoint);
public object ProcessPointerUpdate(PointerPoint pointerPoint);
function processPointerUpdate(pointerPoint)
Public Function ProcessPointerUpdate (pointerPoint As PointerPoint) As Object
パラメーター
- pointerPoint
- PointerPoint
更新を処理する入力ポインター。
戻り値
現在の InkManipulationMode が Inking または Selecting の場合、このメソッドは pointerPoint の最後の ProcessPointerUpdate に関連付けられた Point (インク空間内の画面位置) を返します。
例
次の例では、InkCanvas の PointerMoved イベントのハンドラーを示します。
ここで、最後の更新以降に処理されていない中間ポイント (intermediatePoints
) は、ProcessPointerUpdate 呼び出しの InkManager (inkManager
) によって処理されます。
void InkingArea_PointerMoved(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
var pointerPoint = e.GetCurrentPoint(InkingArea);
if (pointerId == (int)pointerPoint.PointerId)
{
switch (inkManager.Mode)
{
case Windows.UI.Input.Inking.InkManipulationMode.Erasing:
// Check if something has been erased.
// In erase mode, ProcessPointerUpdate returns an
// `invalidateRect` (if it is not degenerate something
// has been erased). In erase mode we don't bother processing
// intermediate points.
var invalidateRect =
(Windows.Foundation.Rect)inkManager.ProcessPointerUpdate(
e.GetCurrentPoint(InkingArea));
if (invalidateRect.Height != 0 && invalidateRect.Width != 0)
{
// We don't know what has been erased so we clear the render
// and add back all the ink saved in the ink manager.
renderer.Clear();
renderer.AddInk(inkManager.GetStrokes());
}
break;
case Windows.UI.Input.Inking.InkManipulationMode.Inking:
case Windows.UI.Input.Inking.InkManipulationMode.Selecting:
// Process intermediate points.
var intermediatePoints = e.GetIntermediatePoints(InkingArea);
for (int i = intermediatePoints.Count - 1; i >= 0; i--)
{
inkManager.ProcessPointerUpdate(intermediatePoints[i]);
}
// Live rendering.
renderer.UpdateLiveRender(pointerPoint);
break;
}
}
}
適用対象
こちらもご覧ください
- ペン操作とスタイラス操作
- 作業の開始: UWP アプリでのインクのサポート
- インクの分析のサンプル (基本) (C#)
- インクの手書き認識のサンプル (C#)
- インク ストロークを Ink Serialized Format (ISF) ファイルに保存し、読み込む
- インク ストロークをクリップボードに保存し、読み込む
- インク ツール バーの位置と向きのサンプル (基本)
- インク ツール バーの位置と向きのサンプル (動的)
- 塗り絵帳のサンプル
- Family Notes のサンプル
- 手描き入力のサンプル (JavaScript)
- 単純な手描き入力のサンプル (C#/C++)
- 複雑な手描き入力のサンプル (C++)
- インク分析のサンプル