Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste exemplo de C#, um formulário de papel foi digitalizado como um arquivo PNG (Portable Network Graphics) e especificado como a imagem de plano de fundo em tempo de execução para um controle InkPicture . O exemplo usa uma caixa de mensagem para exibir resultados de reconhecimento de manuscrito.
O exemplo inclui um arquivo XML (Extensible Markup Language), Formdata.xml. O arquivo XML contém o nome do arquivo PNG. Ele também contém FieldInfo elementos que definem regiões retangulares no formulário onde um usuário pode inserir tinta. As informações no elemento FieldInfo são mostradas no exemplo a seguir:
<FieldInfo>
<Name>first name</Name>
<Left>88</Left>
<Top>65</Top>
<Right>332</Right>
<Bottom>94</Bottom>
</FieldInfo>
Os elementos Esquerda, Superior, Direita e Inferior são definições de coordenadas de pixel para cada campo.
O exemplo inicializa um novo DataSet com os dados contidos em Formdata.xml:
formData = new DataSet("FormData");
formData.ReadXml("formdata.xml");
A imagem do formulário especificada no Formdata.xml é carregada como plano de fundo do controlo InkPicture.
inkPicture1.BackgroundImage =
System.Drawing.Image.FromFile(
(string) formData.Tables["FormData"].Rows[0]["Image"]);
A coleta de tinta é então ativada para o controlo InkPicture :
inkPicture1.InkEnabled = true;
Manipuladores de eventos de menu
O aplicativo inclui manipuladores de eventos de clique para todos os menus exibidos na parte superior do formulário.
Reconhecer item de menu
O manipulador de eventos de clique no menu Reconhecer desabilita a coleta de tinta para o controle e verifica se há um reconhecedor de manuscrito. Se nenhum reconhecedor estiver instalado, uma caixa de diálogo será exibida. Um usuário deve clicar na opção de menu Tinta ou Caneta para reativar o controle para entrada de tinta.
Se um reconhecedor estiver instalado, a função Recognize recuperará os dados XML que especificam as coordenadas de pixel para cada campo de formulário. As coordenadas são convertidas em coordenadas de espaço de tinta e um retângulo é definido para cada campo de formulário. Depois que os retângulos são definidos, a função encontra os traços que se cruzam e ficam dentro de cada retângulo. Finalmente, ele executa o reconhecimento na tinta e exibe os resultados em uma caixa de mensagem.
Opção de menu tinta
O manipulador de eventos de clique do menu Ink ativa o controlo InkPicture .
Item do menu da caneta
O manipulador de eventos Pen menu click executa as seguintes tarefas:
- Desativa a coleta de tinta para o controlo InkPicture (que é necessário antes de alterar a propriedade EditingMode).
- Define a propriedade EditingMode para coletar tinta.
- Reativa a coleta de tinta para o controle de InkPicture e alterna os menus Caneta, Selecionar e Borracha para indicar o modo ativo.
Editar item de menu
O manipulador de eventos de clique do menu Editar é semelhante ao manipulador de eventos do menu Caneta. Executa as seguintes tarefas:
- Desativa a coleção de tinta.
- Define a propriedade EditingMode como Select, que permite que o usuário execute a seleção de tinta.
- Reativa a captura de tinta e ativa/desativa os menus Caneta, Editar e Borracha de forma a indicar o modo ativo.
Item do menu Apagador
O manipulador de eventos de clique do menu Borracha define o modo de edição do controlo InkPictureEditingMode para Delete, o que permite a um utilizador apagar traços de tinta. Também alterna os itens de menu Caneta, Editar e Borracha.
Limpar item de menu
O manipulador de eventos de clique no menu Limpar exclui a coleção de Traçados de atual para o controle InkPicture, apagando assim toda a tinta do formulário.
Fechando o formulário
No código gerado pelo Windows Form Designer, o controlo InkPicture é adicionado à lista de componentes da janela quando a janela é inicializada. Quando o formulário é fechado, o controle InkPicture é descartado, bem como os outros componentes do formulário, pelo método Dispose do formulário.
Tópicos relacionados