Freigeben über


Freihanddaten

Nachdem die Freihandeingabe erfasst wurde, können Anwendungen diese Daten in andere Medien verwalten, bearbeiten und/oder übertragen. Die Aktionen zum Auswählen, Kopieren, Verschieben, Speichern, Anzeigen und Ändern der Freihandeingabe werden für das Ink--Objekt und die darin enthaltenen Elemente, z. B. die Strokes-Auflistung und Stroke--Objekte, ausgeführt.

Anmerkung

Mithilfe Real-Time Eingabestifts können Anwendungen Daten im eigenen Format beibehalten (z. B. Speichern von Strichen).

 

Freihand, Striche und Pakete

Ein Ink--Objekt ist der grundlegende Datentyp, der die vom InkCollector-Objekt erfassten Eingaben verwaltet, bearbeitet und speichert. Ein Ink--Objekt enthält ein oder mehrere Stroke--Objekte sowie allgemeine Methoden und Eigenschaften zum Verwalten und Bearbeiten dieser Striche. Ein Strich wird als Datensatz definiert, der in einer einzelnen Stift-down-, Stiftverschiebungs- und Stift-up-Sequenz erfasst wird. Die Strichdaten enthalten eine Sammlung von Paketen. Ein Paket ist die Datenmenge, die das Tabletgerät an jedem Beispielpunkt sendet. Diese Daten enthalten Informationen wie Koordinaten, Stiftdruck, Stiftwinkel und alles andere, was die Hardware übertragen kann. Die PacketDescription- Eigenschaft des Stroke--Objekts beschreibt die Pakete, die ein Tablet- generiert.

Schlaganfälle

Sie können eine Momentaufnahme der Striche in einem Ink--Objekt abrufen, indem Sie die Strokes- Eigenschaft des Ink- Objekts verwenden. Die Strokes-Eigenschaft ist eine Auflistung von Verweisen auf die Striche im Ink--Objekt, wenn die Strokes-Eigenschaft gelesen wird. Wenn Striche anschließend dem Ink--Objekt hinzugefügt oder gelöscht werden, wird eine zuvor abgerufene Strokes-Auflistung nicht aktualisiert. Darüber hinaus ist die Strokes--Eigenschaft ein Wert und geht wie jeder Wert außerhalb des Gültigkeitsbereichs, es sei denn, sie wird einer Variablen zugewiesen.

Um eine Strokes-Eigenschaft mit einem Ink--Objekt zu synchronisieren, schließen Sie sie in einen Ereignishandler für die StrokesAdded- und StrokesRemoved Ereignisse in der Strokes -Auflistung um. Der Handler sollte eine neue Kopie der Strokes-Eigenschaft abrufen, wenn eines der Ereignisse ausgelöst wird. Achten Sie darauf, dass Sie den Ereignishandler nicht zu einer Strokes- Auflistung hinzufügen, die außerhalb des Gültigkeitsbereichs liegt, bevor das Ereignis ausgelöst wird.

Beachten Sie in diesem Beispiel, dass theAddedStrokesIDs mit einer neuen Kopie der Stricheigenschaft im StrokesAdded_Event-Handler aktualisiert wird.

public void StrokesAdded_Event(object sender, StrokesEventArgs e)
{
    int [] theAddedStrokesIDs = e.StrokeIds;
    theListBox.Items.Clear();
    foreach (int i in theAddedStrokesIDs)
    {
        theListBox.Items.Add("Added Stroke ID: " + i.ToString());
    }
}

PacketDescription-Eigenschaft

Die Ink-eigenschaft Objekt PacketDescription definiert den Satz von Informationen in jedem Paket, das die Anwendung von einem Tablet PC-Gerät abruft. Die Informationen enthalten in der Regel Koordinaten, sie können jedoch wesentlich detailliertere Informationen enthalten (je nachdem, welche Funktionen der Tablet PC-Digitalisierungsfunktion verfügbar sind), z. B. Stiftdruck oder Stiftwinkel. Durch Festlegen von Paketbeschreibungen auf dem InkCollector oder InkOverlay--Objekt, bevor Freihandeingaben gesammelt werden (mithilfe der DesiredPacketDescription-Eigenschaft), haben Sie die vollständige Kontrolle darüber, welche der Tablet PC-Geräteeigenschaften Sie empfangen möchten.

Erweiterte Eigenschaften

Erweiterte Eigenschaften bieten einen Mechanismus zum Anfügen anwendungsdefinierter Daten an Freihand- und andere Objekte. Weitere Informationen zu erweiterten Eigenschaften finden Sie in der ExtendedProperties-Auflistung.

Freihandrendering

Das Renderer--Objekt ist für das Rendern Freihand-verantwortlich. Angesichts eines geeigneten Tablet-Kontexts kann das Renderer--Objekt Freihandraumkoordinaten Pixeln zuordnen, Ansichtstransformationen anwenden und Freihandeingaben auf Bildschirmen und Druckern anzeigen. Die methoden Draw und DrawStroke sind die primären Methoden zum Rendern von Freihand. Weitere Informationen zum Anzeigen von Freihand in einem Fenster finden Sie im Renderer--Objekt.

Spitzen

Ein Strich beginnt normalerweise, wenn der Stift auf die Zeichnungsoberfläche herabgesetzt wird und endet, wenn der Stift ausgelöst wird. Innerhalb eines Strichs werden die Gipfel, Winkel und radikale Richtungsänderungen als Cusps bezeichnet. Die Endpunkte eines Strichs werden auch als Cusps betrachtet. Beispielsweise hat der Großbuchstabe "L" drei Cusps, eine in der Mitte und eine an jedem Ende.

Wenn ein Strich eingegeben wird, wird er normalerweise geglättet und mit einer Bézierkurve (oder Polylinie) gerendert. Bézierkurven können Cusps in kleine Schleifen verwandeln. Der Höchstwert des cursive Buchstabens "i" könnte z. B. geglättet werden, um dem geschweiften "e" zu ähneln. Um dies zu verhindern, verfügen Microsoft-Renderer über eine "Pre-Bezier"-Phase, die die Cusps unterschiedlich behandelt.

Cusps können auch verwendet werden, um Stroke Objekte in löschbare Einheiten zu unterteilen. Wenn Sie z. B. die vertikale Seite eines Großbuchstabens "L" auswählen, kann das Löschen nur dieser Seite angezeigt werden. Der Teil des zu löschenden Strichs wäre der Teil zwischen zwei Cusps.