Compartir a través de


complementos de Dynamic-Renderer

Un complemento de representador dinámico es un objeto que muestra los datos del lápiz de tableta en tiempo real mientras el objeto RealTimeStylus lo controla. Más adelante, para eventos como una actualización del formulario, el complemento de representador dinámico o un complemento del recopilador de tintas puede volver a dibujar la entrada de lápiz.

Objeto DynamicRenderer

El objeto RealTimeStylus implementa la interfaz IStylusSyncPlugin . El objeto DynamicRenderer representa la entrada de lápiz en tiempo real, ya que se dibuja. Cuando se llama al método Refresh mientras se habilita el objeto DynamicRenderer , el objeto DynamicRenderer vuelve a dibujar el trazo que se está recopilando actualmente. La propiedad Enabled del objeto DynamicRenderer se establece inicialmente en FALSE.

Nota

Al llamar al método Refresh del objeto DynamicRenderer desde un controlador de eventos Paint en código administrado, establezca la propiedad ClipRectangle del objeto DynamicRenderer en la propiedad ClipRectangle del objeto PaintEventArgs.

 

El objeto DynamicRenderer puede almacenar temporalmente en caché los datos de entrada de lápiz. Para usar esta característica en código administrado, establezca la propiedad EnableDataCache en TRUE. Cuando el objeto DynamicRenderer recibe una llamada a su método IStylusSyncPlugin.StylusUp , almacena en caché los datos del trazo y agrega datos de lápiz personalizados a la cola input en respuesta al objeto StylusUpData del trazo. La propiedad CustomDataId del objeto CustomStylusData se establece en el valor DynamicRendererCachedDataGuid y la propiedad Data del objeto CustomStylusData contiene un objeto DynamicRendererCachedData. Llame al método ReleaseCachedData del objeto DynamicRenderer una vez que se haya recopilado el trazo y se pueda representar estáticamente. Cuando se llama al método Refresh mientras se habilita el objeto DynamicRenderer , el objeto DynamicRenderer vuelve a dibujar todos los trazos almacenados en caché. Cuando la propiedad DataCacheEnabled se establece en false, se eliminan los datos del trazo almacenados en caché.

En el diagrama siguiente se muestra cómo el objeto DynamicRenderer agrega datos a los datos del lápiz de tableta cuando se establece la propiedad DataCacheEnabled del objeto DynamicRenderer.

Ilustración en la que se muestra el flujo de datos dynamicrenderer

En este diagrama, el círculo con letra "SD" representa un objeto StylusDown y los círculos con letra "P" representan objetos Packets que ya se han agregado a la cola de salida del objeto RealTimeStylus y que aún no se han enviado a la colección de complementos asincrónica. El círculo con letras "SU" representa un objeto StylusUp que el objeto RealTimeStylus está procesando actualmente. Se envía a la colección de complementos sincrónica y, a continuación, se coloca en la cola de salida. Los círculos con letra "DR" representan datos de lápiz óptico personalizados agregados a la cola de entrada por el complemento DynamicRenderer en respuesta a la notificación de lápiz ascendente asociada a "SU". Los datos de lápiz personalizados con letra "DR" se pasan a los complementos sincrónicos y, a continuación, a la cola de salida antes de que se procesen los siguientes datos del lápiz de tableta. El círculo vacío representa la posición de la cola de salida donde se agregan datos futuros del lápiz de tableta. También se representa en el diagrama el complemento del recopilador de tinta que llama al método ReleaseCachedData del objeto DynamicRenderer para liberar los datos de trazo almacenados en caché después de que el complemento de colección de lápiz haya procesado el trazo.

Consideraciones especiales

En la lista siguiente se describen otros puntos que se deben tener en cuenta al usar el objeto DynamicRenderer .

Representación personalizada

Puede crear su propio complemento de representador dinámico mediante la creación de un complemento sincrónico que se suscriba a las notificaciones StylusDown, Packets y StylusUp . Después, el complemento puede representar el trazo a medida que se dibuja. Esta puede ser una manera de implementar una herramienta de selección que usa una selección de forma libre o un cuadro de selección, por ejemplo.