plug-ins Dynamic-Renderer
Un plug-in de rendu dynamique est un objet qui affiche les données du stylet de la tablette en temps réel, car elles sont gérées par l’objet RealTimeStylus . Plus tard, pour des événements tels qu’une actualisation de formulaire, le plug-in de convertisseur dynamique ou un plug-in de collecteur d’encre peut redessiner l’encre.
Objet DynamicRenderer
L’objet RealTimeStylus implémente l’interface IStylusSyncPlugin . L’objet DynamicRenderer restitue l’entrée manuscrite en temps réel, à mesure qu’elle est dessinée. Lorsque la méthode Refresh est appelée alors que l’objet DynamicRenderer est activé, l’objet DynamicRenderer redessine le trait actuellement collecté. La propriété Enabled de l’objet DynamicRenderer est initialement définie sur FALSE.
Notes
Lorsque vous appelez la méthode Refresh de l’objet DynamicRenderer à partir d’un gestionnaire d’événements Paint en code managé, définissez la propriété ClipRectangle de l’objet DynamicRenderer sur la propriété ClipRectangle de l’objet PaintEventArgs.
L’objet DynamicRenderer peut mettre temporairement en cache les données manuscrites. Pour utiliser cette fonctionnalité dans le code managé, définissez la propriété EnableDataCache sur TRUE. Lorsque l’objet DynamicRenderer reçoit un appel à sa méthode IStylusSyncPlugin.StylusUp , il met en cache les données de trait et ajoute des données de stylet personnalisées à la file d’attente Input en réponse à l’objet StylusUpData pour le trait. La propriété CustomDataId de l’objet CustomStylusData est définie sur la valeur DynamicRendererCachedDataGuid et la propriété Data de l’objet CustomStylusData contient un objet DynamicRendererCachedData. Appelez la méthode ReleaseCachedData de l’objet DynamicRenderer une fois que le trait a été collecté et peut être rendu de manière statique. Lorsque la méthode Refresh est appelée alors que l’objet DynamicRenderer est activé, l’objet DynamicRenderer redessine tous les traits mis en cache. Lorsque la propriété DataCacheEnabled a la valeur false, les données de trait mises en cache sont supprimées.
Le diagramme suivant illustre la façon dont l’objet DynamicRenderer ajoute des données aux données du stylet de tablette lorsque la propriété DataCacheEnabled de l’objet DynamicRenderer est définie.
Dans ce diagramme, le cercle « SD » représente un objet StylusDown et les cercles avec la lettre « P » représentent des objets Packets qui ont déjà été ajoutés à la file d’attente de sortie de l’objet RealTimeStylus et qui n’ont pas encore été envoyés à la collection de plug-in asynchrone. Le cercle « SU » représente un objet StylusUp que l’objet RealTimeStylus traite actuellement. Il est envoyé à la collection de plug-ins synchrones, puis placé dans la file d’attente de sortie. Les cercles portant la lettre « DR » représentent des données de stylet personnalisées qui sont ajoutées à la file d’attente d’entrée par le plug-in DynamicRenderer en réponse à la notification du stylet associé à « SU ». Les données de stylet personnalisées avec la lettre « DR » sont ensuite passées aux plug-ins synchrones, puis à la file d’attente de sortie avant le traitement des données du stylet de la tablette suivante. Le cercle vide représente la position dans la file d’attente de sortie où les données futures du stylet de tablette sont ajoutées. Le plug-in ink-collector appelle également la méthode ReleaseCachedData de l’objet DynamicRenderer pour libérer les données de trait mises en cache après que le plug-in de collection d’encre a traité le trait.
Points particuliers à prendre en compte
La liste suivante décrit d’autres points à prendre en compte lors de l’utilisation de l’objet DynamicRenderer .
Vous ne devez pas attacher un objet DynamicRenderer à plusieurs objets RealTimeStylus . Une fois que deux objets RealTimeStylus auxquels l’objet DynamicRenderer est attaché sont activés, les événements suivants se produisent.
- L’objet DynamicRenderer lève une exception en réponse au deuxième appel à sa méthode RealTimeStylusEnabled .
- Le deuxième objet RealTimeStylus activé génère un objet Error et avertit les plug-ins restants de l’erreur dans ses collections de plug-ins.
- L’objet DynamicRenderer arrête le rendu des données du stylet de tablette.
L’objet RealTimeStylus lève une exception lorsque sa méthode AddCustomStylusDataToQueue est appelée avec le paramètre guid défini sur l’identificateur global unique (GUID) DynamicRendererCachedDataGuid.
L’objet DynamicRenderer est implémenté en tant que wrapper COM (Component Object Model) et vous ne pouvez pas appeler directement ses méthodes d’interface IStylusSyncPlugin . Pour plus d’informations sur l’opération COM et l’objet RealTimeStylus , consultez Notes d’implémentation pour les API StylusInput.
Rendu personnalisé
Vous pouvez créer votre propre plug-in de rendu dynamique en créant un plug-in synchrone qui s’abonne aux notifications StylusDown, Packets et StylusUp . Votre plug-in peut ensuite afficher le trait au fur et à mesure qu’il est dessiné. Il peut s’agir d’une façon d’implémenter un outil de sélection qui utilise une sélection de forme libre ou une zone de sélection, par exemple.