Entwurfsüberlegungen für die StylusInput-API

Im Folgenden sind Entwurfsüberlegungen für die StylusInput-API aufgeführt.

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

  • Um die Wiederverwendung und Wartung von Plug-In-Code zu optimieren, sollten Plug-Ins nicht direkt an die Anwendung 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 sortiert. Die relative Position Ihrer Plug-Ins innerhalb dieser Sammlungen kann sehr wichtig sein. Beispielsweise sollte ein Plug-In, das Paketinformationen ändert, der synchronen Plug-In-Sammlung vor einem Dynamic-Renderer-Plug-In hinzugefügt werden.

  • Die Möglichkeit, dem Datenstrom des Tablet-Stifts benutzerdefinierte Eingabestiftdaten hinzuzufügen, sollte sparsam 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 Eingabestiftdaten als Reaktion auf andere benutzerdefinierte Eingabestiftdaten, die in das Plug-In gelangen, da dadurch eine Endlosschleife erstellt werden kann.

  • Plug-In-Auflistungen können geändert werden, während das RealTimeStylus-Objekt aktiviert ist. Dies kann jedoch dazu führen, dass das Verhalten Ihrer Anwendung schwieriger vorhergesagt werden kann. Wenn ein Plug-In hinzugefügt wird, während das RealTimeStylus-Objekt aktiviert ist, ruft das RealTimeStylus-Objekt das Microsoft.StylusInput.IStylusSyncPlugin des Plug-Ins auf. RealTimeStylusEnabled-Methode (entweder die Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled-Methode 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-Methode oder die Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled-Methode in verwaltetem Code). Dadurch kann das Plug-In seinen ordnungsgemäßen Zustand beibehalten, 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 anfänglichen Daten angemessen herzustellen. Beispielsweise könnte das neu hinzugefügte Plug-In paketdaten von einem Stift empfangen, der sich in der Mitte des Strichs befindet. Wenn ein Plug-In entfernt wird, während das RealTimeStylus-Objekt aktiviert ist, können die vom Plug-In empfangenen Plug-In-Daten möglicherweise nicht ausreichen, um die Verarbeitung der Daten abzuschließen.

    Hinweis

    Um die Allgemeine Stabilität zu gewährleisten, setzen Sie den internen Zustand eines Plug-Ins zurück, wenn entweder die RealTimeStylusEnabled-Methode oder die 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.