Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo de C#, se ha escaneado un formulario de papel como un archivo Portable Network Graphics (PNG) y se ha especificado como la imagen de fondo durante la ejecución para un control InkPicture. En el ejemplo se usa un cuadro de mensaje para mostrar los resultados del reconocimiento de escritura a mano.
El ejemplo incluye un archivo de lenguaje de marcado extensible (XML), Formdata.xml. El archivo XML contiene el nombre del archivo PNG. También contiene los FieldInfo
elementos que definen las áreas rectangulares del formulario donde un usuario puede introducir tinta. La información del FieldInfo
elemento se muestra en el ejemplo siguiente:
<FieldInfo>
<Name>first name</Name>
<Left>88</Left>
<Top>65</Top>
<Right>332</Right>
<Bottom>94</Bottom>
</FieldInfo>
Los elementos Left, Top, Right y Bottom son definiciones de coordenadas de píxel para cada campo.
El ejemplo inicializa un nuevo conjunto de datos con los datos contenidos en Formdata.xml:
formData = new DataSet("FormData");
formData.ReadXml("formdata.xml");
La imagen de formulario especificada en Formdata.xml se carga como fondo del control InkPicture :
inkPicture1.BackgroundImage =
System.Drawing.Image.FromFile(
(string) formData.Tables["FormData"].Rows[0]["Image"]);
A continuación, se habilita la recopilación de tinta para el control InkPicture:
inkPicture1.InkEnabled = true;
Controladores de eventos de menú
La aplicación incluye manejadores de eventos de clic para todos los menús que se muestran en la parte superior del formulario.
Reconocer elemento de menú
El controlador de eventos del clic en el menú Reconocer deshabilita la recolección de trazos para el control y verifica si hay un reconocedor de escritura a mano. Si no hay ningún reconocedor instalado, se muestra un cuadro de diálogo. A continuación, un usuario debe hacer clic en la opción de menú Tinta o Lápiz para volver a habilitar el control de entrada de lápiz.
Si se instala un reconocedor, la Recognize
función recupera los datos XML que especifican coordenadas de píxel para cada campo de formulario. Las coordenadas se convierten en coordenadas de espacio de tinta y se define un rectángulo para cada campo de formulario. Después de definir los rectángulos, la función busca los trazos que se intersecan y se encuentran dentro de cada rectángulo. Por último, realiza el reconocimiento en la entrada de tinta y muestra los resultados en un cuadro de diálogo.
Elemento del menú Tinta
El controlador de eventos de clic en el menú Ink habilita el control InkPicture .
Elemento de menú Lápiz
El controlador de eventos de clic del menú Pluma realiza las siguientes tareas:
- Deshabilita la colección de lápiz para el control InkPicture (que es necesario antes de cambiar la propiedad EditingMode ).
- Establece la propiedad EditingMode para recopilar tinta.
- Vuelva a habilitar la colección de lápiz para el control InkPicture y alterna los menús Lápiz, Seleccionar y Borrador para indicar el modo activo.
Editar elemento de menú
El controlador del evento de clic del menú Editar es similar al controlador del evento del menú Pen. Realiza las siguientes tareas:
- Deshabilita la colección de tinta.
- Establece la propiedad EditingMode en Select, lo que permite al usuario realizar la selección de tinta.
- Vuelve a activar la recopilación de tinta y alterna los menús de Lápiz, Editar y Borrador para indicar el modo activo.
Elemento del menú Borrador
El controlador de eventos del menú Borrador establece el control InkPictureEditingMode en Eliminar, lo que permite al usuario borrar la tinta. También cambia las opciones de menú Lápiz, Editar y Borrador.
Borrar elemento de menú
El manejador de eventos del clic en el menú 'Borrar' elimina la colección Strokes actual para el control InkPicture, borrando de esta manera toda la tinta del formulario.
Cerrar el formulario
En el código generado por el Diseñador de Windows Forms, el control InkPicture se agrega a la lista de componentes del formulario cuando se inicializa el formulario. Cuando se cierra el formulario, se elimina el control InkPicture, así como los demás componentes del formulario, mediante el método Dispose del formulario.
Temas relacionados