Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem C#-Beispiel wurde ein Papierformular als PNG-Datei (Portable Network Graphics) gescannt und zur Laufzeit als Hintergrundbild für ein InkPicture-Steuerelement angegeben. Im Beispiel wird ein Meldungsfeld zum Anzeigen von Schrifterkennungsergebnissen verwendet.
Das Beispiel enthält eine XML-Datei (Extensible Markup Language), Formdata.xml. Die XML-Datei enthält den Namen der PNG-Datei. Es enthält auch FieldInfo Elemente, die rechteckige Bereiche im Formular definieren, in denen ein Benutzer Freihandzeichnungen eingeben kann. Die Informationen im FieldInfo Element werden im folgenden Beispiel gezeigt:
<FieldInfo>
<Name>first name</Name>
<Left>88</Left>
<Top>65</Top>
<Right>332</Right>
<Bottom>94</Bottom>
</FieldInfo>
Die Elemente "Left", "Top", "Right" und "Bottom" sind Definitionen von Pixelkoordinaten für jedes Feld.
Im Beispiel wird ein neues DataSet mit den daten initialisiert, die in Formdata.xmlenthalten sind:
formData = new DataSet("FormData");
formData.ReadXml("formdata.xml");
Das in Formdata.xml angegebene Formularbild wird als Hintergrund des InkPicture-Steuerelements geladen:
inkPicture1.BackgroundImage =
System.Drawing.Image.FromFile(
(string) formData.Tables["FormData"].Rows[0]["Image"]);
Die Freihanderfassung wird dann für das InkPicture-Steuerelement aktiviert.
inkPicture1.InkEnabled = true;
Menüereignishandler
Die Anwendung enthält Klickereignishandler für alle Menüs, die am oberen Rand des Formulars angezeigt werden.
Menüelement "Erkennen"
Der Klickereignishandler "Erkennen" deaktiviert die Freihandauflistung für das Steuerelement und sucht nach einer Handschrifterkennung. Wenn keine Erkennung installiert ist, wird ein Dialogfeld angezeigt. Ein Benutzer muss dann auf die Menüoption "Freihand" oder "Stift" klicken, um das Steuerelement für freihandeingaben erneut zu aktivieren.
Wenn eine Erkennung installiert ist, ruft die Recognize Funktion die XML-Daten ab, die Pixelkoordinaten für jedes Formularfeld angeben. Die Koordinaten werden in Tintenraumkoordinaten konvertiert, und für jedes Formularfeld wird ein Rechteck definiert. Nachdem Rechtecke definiert wurden, findet die Funktion die Striche, die sich schneiden und innerhalb jedes Rechtecks liegen. Schließlich führt sie die Erkennung der Tinte durch und zeigt die Ergebnisse in einem Nachrichtenfeld an.
Tintenmenüpunkt
Der Klick-Ereignishandler im Freihandmenü aktiviert das InkPicture-Steuerelement.
Stiftmenüelement
Der Stiftmenü-Klickereignishandler führt die folgenden Aufgaben aus:
- Deaktiviert die Freihandauflistung für das InkPicture-Steuerelement (das vor dem Ändern der EditingMode-Eigenschaft erforderlich ist).
- Legt die EditingMode-Eigenschaft fest, um Tinte zu erfassen.
- Aktiviert die Tinten-Sammlung für das InkPicture-Steuerelement erneut und schaltet die Menüs "Stift", "Auswählen" und "Radierer" um, um den aktuellen Modus anzuzeigen.
Menüelement bearbeiten
Der Klick-Ereignishandler für das Menü "Bearbeiten" ähnelt demjenigen im Stiftmenü. Es führt die folgenden Aufgaben aus:
- Deaktiviert die Tintenerfassung.
- Legt die EditingMode-Eigenschaft auf Select fest, wodurch der Benutzer Freihandauswahl ausführen kann.
- Aktiviert die Freihandsammlung erneut und schaltet die Menüs "Stift", "Bearbeiten" und "Radierer" um, um den aktiven Modus anzugeben.
Radierermenüelement
Mit dem Klick-Ereignis-Handler des Radierermenüs wird das InkPicture-Steuerelement auf EditingModeDelete festgelegt, sodass der Benutzer Tinte löschen kann. Außerdem werden die Menüelemente "Stift", "Zeichnen" und "Radierer" umgeschaltet.
Menüelement löschen
Der Klickereignishandler des Menüs "Löschen" löscht die aktuelle Strichsammlung für das InkPicture-Steuerelement, wodurch alle Zeichnungen im Formular gelöscht werden.
Schließen des Formulars
Im generierten Code des Windows Form-Designers wird das InkPicture-Steuerelement der Komponentenliste des Formulars hinzugefügt, wenn das Formular initialisiert wird. Wenn das Formular geschlossen wird, wird das InkPicture-Steuerelement sowie die anderen Komponenten des Formulars durch die Dispose-Methode des Formulars entsorgt.
Zugehörige Themen