AppHub フォーラムで同様の質問に出くわしたので、ブログに書きました。
https://invokeit.wordpress.com/2012/04/27/high-performance-touch-interface-wpdev-wp7dev/
Manipulation Delta および Gesture サービスは、高レベルのタッチ インターフェースです。パフォーマンスが必要な場合は、低レベル インターフェイスの使用を検討してください: Touch と TouchReported というイベント。多くのプロジェクトで主に(描画/位置検出のために)それらを使用する傾向があります
detech touchにプラグインしたいイベントは
Touch.FrameReported += Touch_FrameReported;
これは Loaded イベントで行うことができます。Touch_FrameReported ハンドラーの実装を次に示します。これで WorkArea は Canvas です。これも WritableBitmap と組み合わせて使用しました
private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
try
{
// Determine if finger / mouse is down
point = e.GetPrimaryTouchPoint(this.workArea);
if (point.Position.X < 0 || point.Position.Y < 0)
return;
if (point.Position.X > this.workArea.Width || point.Position.Y > this.workArea.Height)
return;
if (this.lbLetter.SelectedIndex == -1)
return;
switch (point.Action)
{
case TouchAction.Down:
draw = true;
old_point = point;
goto default;
case TouchAction.Up:
draw = false;
break;
default:
Draw();
break;
}
}
catch
{
MessageBox.Show("Application encountered error processing last request.");
}
}
これは、高レベルのインターフェースよりもはるかにうまく機能します。