Dynamic-Renderer Plug-Ins

Ein Dynamic-Renderer-Plug-In ist ein Objekt, das die Tablet-Stiftdaten in Echtzeit anzeigt, während sie vom RealTimeStylus-Objekt verarbeitet werden. Später kann bei Ereignissen wie einer Formularaktualisierung das Dynamic-Renderer-Plug-In oder ein Freihandsammler-Plug-In die Freihandeingabe neu zeichnen.

Das DynamicRenderer-Objekt

Das RealTimeStylus-Objekt implementiert die IStylusSyncPlugin-Schnittstelle . Das DynamicRenderer-Objekt rendert die Freihandeingabe in Echtzeit, während sie gezeichnet wird. Wenn die Refresh-Methode aufgerufen wird, während das DynamicRenderer-Objekt aktiviert ist, zeichnet das DynamicRenderer-Objekt den derzeit erfassten Strich neu. Die Enabled-Eigenschaft des DynamicRenderer-Objekts wird zunächst auf FALSE festgelegt.

Hinweis

Wenn Sie die Refresh-Methode des DynamicRenderer-Objekts aus einem Paint-Ereignishandler in verwaltetem Code aufrufen, legen Sie die ClipRectangle-Eigenschaft des DynamicRenderer-Objekts auf die ClipRectangle-Eigenschaft des PaintEventArgs-Objekts fest.

 

Das DynamicRenderer-Objekt kann Freihanddaten vorübergehend zwischenspeichern. Um dieses Feature in verwaltetem Code zu verwenden, legen Sie die EnableDataCache-Eigenschaft auf TRUE fest. Wenn das DynamicRenderer-Objekt einen Aufruf seiner IStylusSyncPlugin.StylusUp-Methode empfängt, werden die Strichdaten zwischengespeichert und der Eingabewarteschlange als Reaktion auf das StylusUpData-Objekt für den Strich benutzerdefinierte Eingabestiftdaten hinzugefügt. Die CustomDataId-Eigenschaft des CustomStylusData-Objekts wird auf den DynamicRendererCachedDataGuid-Wert festgelegt, und die Data-Eigenschaft des CustomStylusData-Objekts enthält ein DynamicRendererCachedData-Objekt. Rufen Sie die ReleaseCachedData-Methode des DynamicRenderer-Objekts auf, sobald der Strich erfasst wurde und statisch gerendert werden kann. Wenn die Refresh-Methode aufgerufen wird, während das DynamicRenderer-Objekt aktiviert ist, zeichnet das DynamicRenderer-Objekt alle zwischengespeicherten Striche neu. Wenn die DataCacheEnabled-Eigenschaft auf false festgelegt ist, werden die zwischengespeicherten Strichdaten gelöscht.

Das folgende Diagramm veranschaulicht, wie das DynamicRenderer-Objekt den Tablet-Stiftdaten Daten hinzufügt, wenn die DataCacheEnabled-Eigenschaft des DynamicRenderer-Objekts festgelegt ist.

Abbildung des Dynamicrenderer-Datenflusses

In diesem Diagramm stellt der kreisförmige Schriftzug "SD" ein StylusDown-Objekt dar, und die Kreise mit dem Buchstaben "P" stellen Packets-Objekte dar, die bereits der Ausgabewarteschlange des RealTimeStylus-Objekts hinzugefügt wurden und noch nicht an die asynchrone Plug-In-Auflistung gesendet wurden. Der kreisförmige Schriftzug "SU" stellt ein StylusUp-Objekt dar, das das RealTimeStylus-Objekt gerade verarbeitet. Sie wird an die synchrone Plug-In-Sammlung gesendet und dann in der Ausgabewarteschlange platziert. Die Kreise mit dem Schriftzug "DR" stellen benutzerdefinierte Eingabestiftdaten dar, die der Eingabewarteschlange vom DynamicRenderer-Plug-In als Reaktion auf die mit "SU" verknüpfte Eingabestiftbenachrichtigung hinzugefügt werden. Die benutzerdefinierten Eingabestiftdaten mit dem Schriftzug "DR" werden dann an die synchronen Plug-Ins und dann an die Ausgabewarteschlange übergeben, bevor die daten des nächsten Tablet-Stifts verarbeitet werden. Der leere Kreis stellt die Position in der Ausgabewarteschlange dar, an der zukünftige Tablet-Stiftdaten hinzugefügt werden. Im Diagramm wird auch das Freihandsammler-Plug-In dargestellt, das die ReleaseCachedData-Methode des DynamicRenderer-Objekts aufruft, um die zwischengespeicherten Strichdaten freizugeben, nachdem das Ink-Collection-Plug-In den Strich verarbeitet hat.

Besondere Überlegungen

In der folgenden Liste werden weitere Punkte beschrieben, die bei der Verwendung des DynamicRenderer-Objekts zu berücksichtigen sind.

Benutzerdefiniertes Rendering

Sie können Ein eigenes Dynamic-Renderer-Plug-In erstellen, indem Sie ein synchrones Plug-In erstellen, das die Benachrichtigungen StylusDown, Packets und StylusUpabonniert. Das Plug-In kann dann den Strich rendern, während er gezeichnet wird. Dies kann eine Möglichkeit sein, ein Auswahltool zu implementieren, das z. B. eine Freiformauswahl oder ein Auswahlfeld verwendet.