Condividi tramite


plug-in Dynamic-Renderer

Un plug-in dynamic-renderer è un oggetto che visualizza i dati della penna tablet in tempo reale mentre viene gestito dall'oggetto RealTimeStylus . In seguito, per eventi come un aggiornamento del modulo, il plug-in dynamic-renderer o un plug-in dell'agente di raccolta input penna può ridisegnare l'input penna.

Oggetto DynamicRenderer

L'oggetto RealTimeStylus implementa l'interfaccia IStylusSyncPlugin . L'oggetto DynamicRenderer esegue il rendering dell'input penna in tempo reale, mentre viene disegnato. Quando il metodo Refresh viene chiamato mentre l'oggetto DynamicRenderer è abilitato, l'oggetto DynamicRenderer ridisegna il tratto attualmente in corso di raccolta. La proprietà Enabled dell'oggetto DynamicRenderer è inizialmente impostata su FALSE.

Nota

Quando si chiama il metodo Refresh dell'oggetto DynamicRenderer dall'interno di un gestore eventi Paint nel codice gestito, impostare la proprietà ClipRectangle dell'oggetto DynamicRenderer sulla proprietà ClipRectangle dell'oggetto PaintEventArgs.

 

L'oggetto DynamicRenderer può memorizzare temporaneamente nella cache i dati dell'input penna. Per usare questa funzionalità nel codice gestito, impostare la proprietà EnableDataCache su TRUE. Quando l'oggetto DynamicRenderer riceve una chiamata al relativo metodo IStylusSyncPlugin.StylusUp , memorizza nella cache i dati del tratto e aggiunge dati di stilo personalizzati alla coda input in risposta all'oggetto StylusUpData per il tratto. La proprietà CustomStylusData dell'oggetto CustomDataId è impostata sul valore DynamicRendererCachedDataGuid e la proprietà Data dell'oggetto CustomStylusData contiene un oggetto DynamicRendererCachedData. Chiamare il metodo ReleaseCachedData dell'oggetto DynamicRenderer dopo aver raccolto il tratto e può essere eseguito il rendering statico. Quando viene chiamato il metodo Refresh mentre l'oggetto DynamicRenderer è abilitato, l'oggetto DynamicRenderer ridisegna tutti i tratti memorizzati nella cache. Quando la proprietà DataCacheEnabled è impostata su false, i dati del tratto memorizzati nella cache vengono eliminati.

Il diagramma seguente illustra come l'oggetto DynamicRenderer aggiunge dati ai dati della penna del tablet quando viene impostata la proprietà DataCacheEnabled dell'oggetto DynamicRenderer.

figura che mostra il flusso di dati dynamicrenderer

In questo diagramma il cerchio letterato "SD" rappresenta un oggetto StylusDown e i cerchi letterati "P" rappresentano gli oggetti Pacchetti che sono già stati aggiunti alla coda di output dell'oggetto RealTimeStylus e che non sono ancora stati inviati alla raccolta plug-in asincrona. Il cerchio letterato "SU" rappresenta un oggetto StylusUp che l'oggetto RealTimeStylus sta attualmente elaborando. Viene inviato alla raccolta plug-in sincrona e quindi inserita nella coda di output. I cerchi letterati "RIPRISTINO di emergenza" rappresentano dati di stilo personalizzati aggiunti alla coda di input dal plug-in DynamicRenderer in risposta alla notifica di stilo associata a "SU". I dati di stilo personalizzati letterati "RIPRISTINO" vengono quindi passati ai plug-in sincroni e quindi alla coda di output prima dell'elaborazione dei dati della penna del tablet successivo. Il cerchio vuoto rappresenta la posizione nella coda di output in cui vengono aggiunti i dati della penna tablet futuri. Anche rappresentato nel diagramma è il plug-in dell'agente di raccolta penna che chiama il metodo ReleaseCachedData dell'oggetto DynamicRenderer per rilasciare i dati del tratto memorizzati nella cache dopo l'elaborazione del plug-in della raccolta input penna.

Considerazioni speciali

L'elenco seguente descrive altri punti da prendere in considerazione quando si usa l'oggetto DynamicRenderer .

Rendering personalizzato

È possibile creare un plug-in dynamic-renderer personalizzato creando un plug-in sincrono che sottoscrive le notifiche StylusDown, Pacchetti e StylusUp . Il plug-in può quindi eseguire il rendering del tratto durante il disegno. Questo può essere un modo per implementare uno strumento di selezione che usa una selezione di moduli gratuiti o una casella di selezione, ad esempio.