Ink-Daten

Nachdem die Ink gesammelt wurde, können Anwendungen diese Daten verwalten, bearbeiten und/oder auf andere Medien übertragen. Die Aktionen zum Auswählen, Kopieren, Verschieben, Speichern, Anzeigen und Ändern der Ink erfolgen für das Ink-Objekt und seine enthaltenen Member, z. B. die Strokes-Auflistung und die Stroke-Objekte.

Hinweis

Mit Real-Time Stift können Anwendungen Daten in einem eigenen Format verwalten (z. B. Striche speichern).

Ink, Strokes und Packets

Ein Ink-Objekt ist der grundlegende Datentyp, der die vom InkCollector-Objekt gesammelten Eingaben verwaltet, bearbeitet und speichert. Ein Ink-Objekt enthält mindestens ein Stroke-Objekt sowie allgemeine Methoden und Eigenschaften zum Verwalten und Bearbeiten dieser Striche. Ein Strich wird als Satz von Daten definiert, die in einer einzelnen Stift-Nach-Unten-, Stift- und Stift-Nach-Oben-Sequenz erfasst werden. Die Strichdaten enthalten eine Auflistung von Paketen. Ein Paket ist der Satz von Daten, 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.

Striche

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 zum Zeitpunkt des Lesens der Strokes-Eigenschaft. Wenn Striche anschließend dem Ink-Objekt hinzugefügt oder daraus 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 aus dem Gültigkeitsbereich, es sei denn, sie wird einer Variablen zugewiesen.

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

Beachten Sie, dass in diesem Beispiel theAddedStrokesIDs mit einer neuen Kopie der Strokes-Eigenschaft im Handler aktualisiert StrokesAdded_Event 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 PacketDescription-Eigenschaft des Ink-Objekts definiert den Satz von Informationen in jedem Paket, das die Anwendung von einem Tablet PC-Gerät erhält. Die Informationen enthalten in der Regel Koordinaten, können aber viel ausführlichere Informationen enthalten (je nachdem, welche Funktionen der Tablet PC-Digitizer bietet), z. B. Stiftdruck oder Stiftwinkel. Durch Festlegen von Paketbeschreibungen für das InkCollector- oder InkOverlay-Objekt vor dem Sammeln von Inks (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 stellen einen Mechanismus zum Anfügen von anwendungsdefinierte Daten an Ink und andere Objekte bereit. Weitere Informationen zu erweiterten Eigenschaften finden Sie in der ExtendedProperties-Auflistung.

Ink Rendering

Das Rendererobjekt ist für das Rendern von Inkzuständig. Bei einem geeigneten Tablet-Kontext kann das Rendererobjekt Freihandraumkoordinaten Pixeln zuordnen, Ansichtstransformationen anwenden und Freihand auf Bildschirmen und Druckern anzeigen. Die Draw- und DrawStroke-Methoden sind die primären Methoden zum Rendern von Ink. Weitere Informationen zum Anzeigen von Ink in einem Fenster finden Sie im Rendererobjekt.

Spitzen

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

Wenn ein Strich eingegeben wird, wird er normalerweise geglättet und mithilfe einer Bézierkurve (oder Polylinienkurve) gerendert. Bézierkurven können Cusps in kleine Schleifen umwandeln. Beispielsweise kann die Spitze des geschweiften Buchstabens "i" 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 Strichobjekte in löschbare Einheiten zu unterteilen. Wenn Sie z. B. die vertikale Seite eines Großbuchstabens "L" auswählen, kann dies darauf hindeuten, dass nur diese Seite entfernt wird. Der Teil des Strichs, der gelöscht werden soll, ist der Teil zwischen zwei Cusps.