Considérations relatives à la conception pour l’API StylusInput
Voici des considérations de conception pour l’API StylusInput.
Vous pouvez mettre à jour la propriété WindowInputRectangle de l’objet RealTimeStylus et la propriété ClipRectangle de l’objet DynamicRenderer lorsque le stylet est arrêté. Cela peut être utile lorsque vous souhaitez disposer d’une zone de dessin dynamique pendant que l’application collecte l’encre.
Pour optimiser la réutilisation et la maintenance du code de plug-in, les plug-ins ne doivent pas appeler directement l’application, mais utiliser l’objet CustomStylusData (objet CustomeStylusData dans le code managé) pour communiquer avec l’application.
Les collections de plug-ins de l’objet RealTimeStylus sont triées. La position relative de vos plug-ins au sein de ces collections peut être très importante. Par exemple, un plug-in qui modifie les informations de paquet doit probablement être ajouté à la collection de plug-ins synchrones avant un plug-in de rendu dynamique.
La possibilité d’ajouter des données de stylet personnalisées au flux de données du stylet de tablette doit être utilisée avec parcimonie. Utilisez cette fonctionnalité uniquement si un autre plug-in doit recevoir ces informations dans le cadre du flux de données. En outre, évitez d’ajouter des données de stylet personnalisées en réponse à d’autres données de stylet personnalisées entrant dans le plug-in, car cela peut créer une boucle infinie.
Les collections de plug-ins peuvent être modifiées lorsque l’objet RealTimeStylus est activé ; Toutefois, cela peut rendre le comportement de votre application plus difficile à prédire. Lorsqu’un plug-in est ajouté alors que l’objet RealTimeStylus est activé, l’objet RealTimeStylus appelle microsoft.StylusInput.IStylusSyncPlugin du plug-in. Méthode RealTimeStylusEnabled (soit la méthode Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled ou la méthode Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled dans le code managé). Lorsqu’un plug-in est supprimé alors que l’objet RealTimeStylus est activé, l’objet RealTimeStylus appelle la méthode RealTimeStylusDisabled du plug-in (soit la méthode Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled ou la méthode Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled dans le code managé). Cela permet au plug-in de conserver son état correct sans avoir à case activée la propriété Enabled de l’objet RealTimeStylus. Lorsqu’un plug-in est ajouté alors que l’objet RealTimeStylus est activé, les données de plug-in reçues par le plug-in peuvent ne pas contenir suffisamment d’informations pour établir correctement le contexte des données initiales. Par exemple, le plug-in nouvellement ajouté peut commencer à recevoir des données de paquet à partir d’un stylet qui est mi-trait. De même, lorsqu’un plug-in a été supprimé alors que l’objet RealTimeStylus est activé, les données de plug-in reçues par le plug-in peuvent être insuffisantes pour terminer le traitement des données.
Notes
Pour une stabilité globale, réinitialisez l’état interne d’un plug-in lorsque sa méthode RealTimeStylusEnabled ou RealTimeStylusDisabled est appelée.
L’objet RealTimeStylus lève une exception si un plug-in modifie la collection de plug-ins à laquelle il est attaché. Cela se produit uniquement lorsque le plug-in le fait alors qu’il est appelé par l’objet RealTimeStylus en tant que membre de cette collection.