Partilhar via


Práticas recomendadas (Tablet PC)

Há algumas diretrizes a ter em mente quando se usa o objeto PenInputPanel.

Prefira o controle InkEdit

InkEdit é o controlo preferencial ao qual anexar o objeto PenInputPanel. O controle InkEdit fornece suporte para o Text Services Framework (TSF).

Desativar o modo de tinta nos controles InkEdit

Quando anexado a um controle InkEdit, defina a propriedade InkMode do controle InkEdit para o valor de InkMode. Se a propriedade InkMode não estiver definida para o valor InkMode, o controlo InkEdit interpretará o primeiro toque como um traçado, passá-lo-á para o reconhecedor e inserirá o texto no controlo InkEdit. Como você já tem um objeto PenInputPanel anexado para aceitar entrada de tinta, não precisa ter o controlo InkEdit também habilitado para entrada de tinta.

Usando controles sem janela

Quando um objeto PenInputPanel é anexado a uma janela pai que contém mais de um controle sem janela, o objeto PenInputPanel não sabe como rastrear o cursor enquanto o foco se move entre crianças sem janelas. A entrada de manuscrito pode ser enviada para a criança errada quando o foco se move de um controle sem janela para outro enquanto a entrada está pendente.

Para usar o objeto PenInputPanel em um ambiente sem janelas, a seguinte técnica pode ser usada:

  1. Instancie um controle TextBox e posicione-o sobre o controle sem janelas.
  2. Anexe o objeto PenInputPanel ao novo controle de caixa de texto.
  3. Deixe o controle de caixa de texto coletar o texto reconhecido do objetoPenInputPanel.
  4. Quando o foco se afasta do controle de caixa de texto, chame o método de CommitPendingInput do objetoPenInputPanel.
  5. Copie o texto reconhecido do controle de caixa de texto para o filho sem janelas.
  6. Desanexe o objeto PenInputPanel fixando a sua propriedade AttachedEditControl (somente em código gerido) ou a propriedade AttachedEditWindow a null.
  7. Destrua o controle da caixa de texto.

Classe PenInputPanel

Microsoft.Ink.PenInputPanel

Estrutura de Serviços de Texto