Share via


ベスト プラクティス (タブレット PC)

PenInputPanel オブジェクトを使用する場合は、いくつかのガイドラインに留意する必要があります。

InkEdit コントロールを優先する

InkEdit は、 PenInputPanel オブジェクトをアタッチする優先コントロールです。 InkEdit コントロールは、 Text Services Framework (TSF) のサポートを提供します。

InkEdit コントロールでインク モードを無効にする

InkEdit コントロールにアタッチされている場合は、InkEdit コントロールの InkMode プロパティを InkMode 値に設定します。 InkMode プロパティが InkMode 値に設定されていない場合、InkEdit コントロールは最初のタップをストロークとして解釈し、認識エンジンに渡し、InkEdit コントロールにテキストを挿入します。 インク入力を受け入れるために PenInputPanel オブジェクトが既にアタッチされているため、InkEdit コントロールもインク入力に対して有効にする必要はありません。

ウィンドウレス コントロールの使用

PenInputPanel オブジェクトが、複数のウィンドウレス コントロールを含む親ウィンドウにアタッチされている場合、PenInputPanel オブジェクトは、ウィンドウなしの子の間でフォーカスが移動したときにキャレットを追跡する方法を認識しません。 手書き入力は、入力が保留中の間にウィンドウレス コントロール間でフォーカスが移動したときに、間違った子に送信される可能性があります。

ウィンドウレス環境で PenInputPanel オブジェクトを使用するには、次の手法を使用できます。

  1. TextBox コントロールをインスタンス化し、ウィンドウレス コントロールの上に配置します。
  2. PenInputPanel オブジェクトを新しいテキスト ボックス コントロールにアタッチします。
  3. テキスト ボックス コントロールで、認識されたテキストを PenInputPanel オブジェクトから収集します。
  4. テキスト ボックス コントロールからフォーカスが離れた場合は、PenInputPanel オブジェクトの CommitPendingInput メソッドを呼び出します。
  5. 認識されたテキストをテキスト ボックス コントロールからウィンドウなしの子にコピーします。
  6. AttachedEditControl (マネージ コードのみ) プロパティまたは AttachedEditWindow プロパティを null に設定して、PenInputPanel オブジェクトをデタッチします。
  7. テキスト ボックス コントロールを破棄します。

PenInputPanel クラス

Microsoft.Ink.PenInputPanel

Text Services Framework (TSF)