Entwurfsüberlegungen für die StylusInput-API

Im Folgenden finden Sie Entwurfsüberlegungen für die StylusInput-API.

  • Sie können die WindowInputRectangle-Eigenschaft des RealTimeStylus-Objekts und die ClipRectangle-Eigenschaft des DynamicRenderer-Objekts aktualisieren, während der Stift unten ist. Dies kann nützlich sein, wenn Sie einen dynamischen Zeichnungsbereich verwenden möchten, während die Anwendung Ink sammelt.

  • Um die Wiederverwendung und Wartung von Plug-In-Code zu optimieren, sollten Plug-Ins die Anwendung nicht direkt aufrufen, sondern das CustomStylusData-Objekt (CustomeStylusData-Objekt in verwaltetem Code) für die Kommunikation mit der Anwendung verwenden.

  • Die Plug-In-Auflistungen des RealTimeStylus-Objekts werden geordnet. Die relative Position Ihrer Plug-Ins innerhalb dieser Auflistungen kann sehr wichtig sein. Beispielsweise sollte ein Plug-In, das Paketinformationen ändert, wahrscheinlich der synchronen Plug-In-Auflistung vor einem Plug-In mit dynamischem Renderer hinzugefügt werden.

  • Die Möglichkeit, dem Datenstrom des Tablettstifts benutzerdefinierte Tablettstiftdaten hinzuzufügen, sollte nur wenig verwendet werden. Verwenden Sie dieses Feature nur, wenn ein anderes Plug-In diese Informationen als Teil des Datenstroms empfangen muss. Vermeiden Sie außerdem das Hinzufügen benutzerdefinierter Stiftdaten als Reaktion auf andere benutzerdefinierte Stiftdaten, die in das Plug-In kommen, da dies eine Endlosschleife erzeugen kann.

  • Plug-In-Sammlungen können geändert werden, während das RealTimeStylus-Objekt aktiviert ist. Dies kann jedoch die Vorhersage des Verhaltens Ihrer Anwendung erschweren. Wenn ein Plug-In hinzugefügt wird, während das RealTimeStylus-Objekt aktiviert ist, ruft das RealTimeStylus-Objekt microsoft.StylusInput.IStylusSyncPlugin des Plug-Ins auf. RealTimeStylusEnabled-Methode (entweder die Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled- oder die Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled-Methode in verwaltetem Code). Wenn ein Plug-In entfernt wird, während das RealTimeStylus-Objekt aktiviert ist, ruft das RealTimeStylus-Objekt die RealTimeStylusDisabled-Methode des Plug-Ins auf (entweder die Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled- oder die Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled-Methode in verwaltetem Code). Dadurch kann das Plug-In seinen richtigen Zustand erhalten, ohne die Enabled-Eigenschaft des RealTimeStylus-Objekts überprüfen zu müssen. Wenn ein Plug-In hinzugefügt wird, während das RealTimeStylus-Objekt aktiviert ist, enthalten die plug-in-Daten, die das Plug-In empfängt, möglicherweise nicht genügend Informationen, um den Kontext der ursprünglichen Daten angemessen zu erstellen. Das neu hinzugefügte Plug-In könnte z. B. beginnen, Paketdaten von einem Stift mit Strichmitte zu empfangen. Wenn ein Plug-In entfernt wird, während das RealTimeStylus-Objekt aktiviert ist, sind die vom Plug-In empfangenen Plug-In-Daten möglicherweise nicht ausreichend, um die Verarbeitung der Daten fertig zu stellen.

    Hinweis

    Setzen Sie den internen Zustand eines Plug-Ins zurück, wenn entweder seine RealTimeStylusEnabled- oder RealTimeStylusDisabled-Methode aufgerufen wird.

  • Das RealTimeStylus-Objekt löst eine Ausnahme aus, wenn ein Plug-In die Plug-In-Auflistung ändert, an die es angefügt ist. Dies geschieht nur, wenn das Plug-In dies tut, während es vom RealTimeStylus-Objekt als Member dieser Auflistung aufgerufen wird.