Condividi tramite


Considerazioni sulla progettazione per l'API StylusInput

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

  • È possibile aggiornare la proprietà WindowInputRectangle dell'oggetto RealTimeStylus e la proprietà ClipRectangle dell'oggetto DynamicRenderer mentre la penna è giù. Ciò può essere utile quando si vuole 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 l'oggetto CustomStylusData (CustomeStylusData nel codice gestito) per comunicare con l'applicazione.

  • Le raccolte plug-in dell'oggetto RealTimeStylus sono ordinate. 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 aggiunto alla raccolta plug-in sincrona prima di un plug-in dinamico-renderer.

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

  • Le raccolte plug-in possono essere modificate mentre l'oggetto RealTimeStylus è abilitato; Tuttavia, questo può rendere il comportamento dell'applicazione più difficile da prevedere. Quando viene aggiunto un plug-in mentre l'oggetto RealTimeStylus è abilitato, l'oggetto RealTimeStylus chiama il plug-in Microsoft.StylusInput.IStylusSyncPlugin. Metodo RealTimeStylusEnabled (metodo 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 metodo RealTimeStylusDisabled (il metodo Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled o Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled nel codice gestito). Ciò consente al plug-in di mantenere lo stato corretto senza dover controllare la proprietà Enabled dell'oggetto RealTimeStylus . Quando viene aggiunto un plug-in mentre l'oggetto RealTimeStylus è abilitato, i dati del plug-in ricevuti potrebbero non contenere informazioni sufficienti per stabilire adeguatamente il contesto dei dati iniziali. Ad esempio, il plug-in appena aggiunto potrebbe iniziare a ricevere i dati dei pacchetti da una penna a metà tratto. Analogamente, quando un plug-in è stato rimosso mentre l'oggetto RealTimeStylus è abilitato, i dati 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 metodo RealTimeStylusEnabled o RealTimeStylusDisabled .

     

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