Considerazioni sulla progettazione per l'API StylusInput

Di seguito sono riportate alcune considerazioni di progettazione per l'API StylusInput.

  • È possibile aggiornare la proprietàWindowInputRectangle dell'oggettoRealTimeStyluse la proprietà ClipRectangle dell'oggetto DynamicRenderer mentre la penna è inattiva. Ciò può essere utile quando si desidera avere un'area di disegno dinamica mentre l'applicazione raccoglie l'input penna.

  • Per ottimizzare il riutilizzo e la manutenzione del codice plug-in, i plug-in non devono effettuare chiamate direttamente all'applicazione, ma devono usare il CustomStylusData (CustomeStylusData oggetto nel codice gestito) per comunicare con l'applicazione.

  • Vengono ordinati gli insiemi plug-in dell'oggetto RealTimeStylus. La posizione relativa dei plug-in all'interno di queste raccolte può essere molto importante. Ad esempio, un plug-in che modifica le informazioni sui pacchetti dovrebbe essere probabilmente aggiunto alla raccolta di plug-in sincrona prima di un plug-in dynamic-renderer.

  • La possibilità di aggiungere dati dello stilo personalizzati al flusso di dati della penna del tablet deve essere usata con moderazione. Usare questa funzionalità solo se un altro plug-in deve ricevere queste informazioni come parte del flusso di dati. Inoltre, evitare di aggiungere dati di stilo personalizzati in risposta ad altri dati dello stilo personalizzati che arrivano nel plug-in, in quanto ciò può creare un ciclo infinito.

  • Le raccolte plug-in possono essere modificate mentre l'oggettoRealTimeStylus è abilitato; Tuttavia, questo può rendere il comportamento dell'applicazione più difficile da prevedere. Quando viene aggiunto un plug-in mentre è abilitato l'oggetto RealTimeStylus, l'oggetto RealTimeStylus chiama il plug-in Microsoft.StylusInput.IStylusSyncPlugin. metodo RealTimeStylusEnabled (Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled o Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled nel codice gestito). Quando un plug-in viene rimosso mentre l'oggetto RealTimeStylus è abilitato, l'oggetto RealTimeStylus chiama il metodoRealTimeStylusDisabled del plug-in (Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled o il metodo Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled nel codice gestito). In questo modo il plug-in può mantenere lo stato corretto senza dover controllare la proprietàEnableddell'oggetto RealTimeStylus. Quando viene aggiunto un plug-in mentre il RealTimeStylus oggetto è abilitato, i dati del plug-in ricevuti dal plug-in potrebbero non contenere informazioni sufficienti per stabilire adeguatamente il contesto dei dati iniziali. Ad esempio, il plug-in appena aggiunto potrebbe iniziare a ricevere dati di pacchetto da una penna che è metà tratto. Analogamente, quando un plug-in è stato rimosso mentre l'oggetto RealTimeStylus è abilitato, i dati del plug-in ricevuti dal plug-in potrebbero non essere sufficienti per completare l'elaborazione dei dati.

    Nota

    Per la stabilità complessiva, reimpostare lo stato interno di un plug-in quando viene chiamato il relativo RealTimeStylusEnabled o RealTimeStylusDisabled metodo.

     

  • L'oggetto RealTimeStylus genera un'eccezione se un plug-in modifica l'insieme plug-in a cui è collegato. Ciò si verifica solo quando il plug-in viene chiamato dal RealTimeStylus oggetto come membro di tale insieme.