Consideraciones de diseño para la API StylusInput
Las siguientes son consideraciones de diseño para la API StylusInput.
Puede actualizar la propiedad WindowInputRectangle del objeto RealTimeStylus y la propiedad ClipRectangle del objeto DynamicRenderer mientras el lápiz está inactivo. Esto puede ser útil cuando se desea tener un área de dibujo dinámico mientras la aplicación está recopilando tinta.
Para optimizar la reutilización y el mantenimiento del código del complemento, los complementos no deben realizar llamadas directamente a la aplicación, pero deben usar el objeto CustomStylusData (CustomeStylusData en código administrado) para comunicarse con la aplicación.
Se ordenan las colecciones de complementos del objeto RealTimeStylus . La posición relativa de los complementos dentro de estas colecciones puede ser muy importante. Por ejemplo, es probable que se agregue un complemento que modifique la información del paquete a la colección de complementos sincrónica antes de un complemento de representador dinámico.
La capacidad de agregar datos de lápiz óptico personalizados al flujo de datos del lápiz de tableta debe usarse con moderación. Use esta característica solo si otro complemento necesita recibir esta información como parte del flujo de datos. Además, evite agregar datos de lápiz óptico personalizados en respuesta a otros datos de lápiz óptico personalizados que entran en el complemento, ya que esto puede crear un bucle infinito.
Las colecciones de complementos se pueden modificar mientras el objeto RealTimeStylus está habilitado; Sin embargo, esto puede hacer que el comportamiento de la aplicación sea más difícil de predecir. Cuando se agrega un complemento mientras el objeto RealTimeStylus está habilitado, el objeto RealTimeStylus llama al complemento Microsoft.StylusInput.IStylusSyncPlugin. Método RealTimeStylusEnabled (ya sea el método Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled o Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled en código administrado). Cuando se quita un complemento mientras el objeto RealTimeStylus está habilitado, el objeto RealTimeStylus llama al método RealTimeStylusDisabled del complemento (ya sea el método Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled o Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled en código administrado). Esto permite que el complemento mantenga su estado adecuado sin tener que comprobar la propiedad Enabled del objeto RealTimeStylus . Cuando se agrega un complemento mientras se habilita el objeto RealTimeStylus , es posible que los datos del complemento que recibe el complemento no contengan suficiente información para establecer adecuadamente el contexto de los datos iniciales. Por ejemplo, el complemento recién agregado podría empezar a recibir datos de paquetes de un lápiz que es un trazo medio. Del mismo modo, cuando se quita un complemento mientras el objeto RealTimeStylus está habilitado, los datos del complemento que el complemento ha recibido pueden ser insuficientes para terminar de procesar los datos.
Nota
Para lograr una estabilidad general, restablezca el estado interno de un complemento cuando se llame al método RealTimeStylusEnabled o RealTimeStylusDisabled .
El objeto RealTimeStylus produce una excepción si un complemento modifica la colección de complementos a la que está asociada. Esto sucede solo cuando el complemento lo hace mientras el objeto RealTimeStylus lo llama como miembro de esa colección.