TextInputPanel per gli utenti di PenInputPanel
La versione di Windows Vista include un nuovo oggetto programmabilità per il pannello di input tablet PC che offre una nuova gamma di possibilità per come un'applicazione può usare e interagire con il pannello di input. Per la prima volta gli sviluppatori di applicazioni possono posizionare l'icona del pannello di input In-Place per allinearsi a una casella di testo o posizionarla nell'angolo di una superficie di input penna del cliente per offrire l'accesso a una modalità di input alternativa. Gli sviluppatori hanno lo stesso controllo sulla posizione dopo che l'icona del pannello di input viene espansa nel pannello di input In-Place. In questo modo è possibile garantire che il pannello di input In-Place non si sovrapponga mai agli elementi dell'interfaccia utente chiave nel layout di un'applicazione o anche per rifloware l'interfaccia utente di un'applicazione per rendere spazio per il pannello di input In-Place e quindi inserirlo nello spazio riservato. Il nuovo modello di programmabilità include il supporto per più di un semplice posizionamento, tuttavia, gli sviluppatori possono anche personalizzare l'area di input, la modalità di correzione e molte altre proprietà del pannello di input per personalizzare l'esperienza di voce di testo in un'applicazione. Infine, per la prima volta è possibile che un'applicazione riceva l'input penna dell'utente, oltre al testo riconosciuto, associato agli inserimenti di testo dal pannello di input. Ciò consente nuovi scenari dell'applicazione, inclusi gli input penna nei log di rilevamento delle modifiche e consente agli utenti di modificare o visualizzare l'input penna nell'applicazione. Queste nuove funzionalità di programmabilità sono il risultato diretto del feedback ricevuto da Microsoft sulla storia dello sviluppatore del pannello di input e rappresentano il primo passo verso l'integrazione più stretta delle applicazioni e del pannello di input.
Per fornire questo modello di programmabilità del pannello di input arricchito, il meccanismo esistente per interagire a livello di codice con il pannello di input, l'oggetto PenInputPanel viene deprecato e sostituito dal nuovo oggetto TextInputPanel . Oltre a fornire nuove funzionalità di programmabilità, l'oggetto TextInputPanel offre anche una vicinanza a tutte le funzionalità programmatice dell'oggetto PenInputPanel . L'oggetto TextInputPanel è incluso sia in Windows Vista che in Windows Vista Software Developer Kit. L'oggetto TextInputPanel è compatibile solo con il pannello di input di Windows Vista e non può essere usato con il Pannello di input windows XP Service Pack 2 o precedente. L'applicazione scritta in precedenza per l'uso dell'oggetto PenInputPanel continuerà a funzionare con il pannello di input di Windows Vista, tuttavia, quando si scrivono nuove applicazioni Tablet gli sviluppatori sono fortemente incoraggiati a usare il nuovo oggetto TextInputPanel anziché l'oggetto PenInputPanel deprecato.
Ognuna delle opzioni di programmabilità dell'oggetto TextInputPanel può essere applicata in base a un campo di testo. Questa operazione viene eseguita collegando un'istanza dell'oggetto TextInputPanel usando la proprietà AttachedEditWindow . La proprietà deve essere impostata sull'handle della finestra per il campo di testo.
Nota
: diverse delle proprietà e dei metodi descritti di seguito si applicano quando il pannello di input si trova nella modalità di interazione sul posto e non quando il pannello di input si trova nella modalità di interazione mobile o ancorata. La modalità di interazione sul posto è il comportamento del pannello di input in cui l'inserimento dello stato attivo in un campo modificabile causa la visualizzazione dell'icona del pannello di input accanto al campo e il tocco sull'icona del pannello di input causa l'espansione del pannello di input. I metodi e le proprietà che si applicano solo quando il pannello di input si trova nella modalità di interazione sul posto, tutti contengono "InPlace" nel metodo o nel nome della proprietà.
Controllo dell'icona del pannello di input e della visibilità del pannello di input
Il primo aspetto del pannello di input su cui gli sviluppatori di applicazioni hanno più controllo in Windows Vista è la visibilità. Usando l'oggetto TextInputPanel è possibile controllare la visibilità del pannello di input In-Place in tre modi. Con una combinazione di proprietà e metodi un'applicazione può determinare se viene visualizzato il pannello di input In-Place, quando viene visualizzato il pannello di input In-Place e se viene visualizzato prima come icona del pannello di input o viene visualizzato immediatamente espanso. Combinando queste tecniche per controllare la visibilità con le tecniche per controllare la posizione descritta nella sezione successiva, è possibile che gli sviluppatori dell'applicazione creino punti di avvio personalizzati e flussi di lavoro personalizzati usando il In-Place Pannello di input in un'applicazione.
Nota
Le proprietà e i metodi illustrati in questa sezione si applicano solo quando il pannello di input si trova nella modalità di interazione In-Place.
In primo luogo e fondamentalmente, è possibile impedire che il pannello di input In-Place e l'icona del pannello di input venga mai visualizzata impostando la proprietà InPlaceVisibleOnFocus su false. L'impostazione su true lo ripristina all'impostazione predefinita del sistema quando possibile, purché non sia stata disabilitata dall'utente o Criteri di gruppo. Questa opzione è utile per le applicazioni che includono soluzioni di voce di testo personalizzate come alternativa al pannello di input.
In secondo luogo, impostando la proprietà DefaultInPlaceState , uno sviluppatore può specificare quale stato sul posto, come specificato dall'enumerazione InPlaceState , viene visualizzato il In-Place Pannello di input quando lo stato attivo viene posizionato in un campo di testo. Il valore predefinito del sistema è che il pannello di input In-Place venga visualizzato nello stato del puntatore del mouse, a meno che il pannello di input non sia già visibile nello stato espanso, in cui il pannello di input rimane espanso. Se si imposta la proprietà DefaultInPlaceState su InPlaceState_Expanded , il pannello di input In-Place viene sempre visualizzato in modo espanso anziché l'icona del pannello di input visualizzata prima che l'utente tocca l'icona del pannello di input prima dell'espansione del pannello di input. Le altre due opzioni sono InPlaceState_Auto, ovvero il comportamento predefinito del sistema e InPlaceState_HoverTarget che causa sempre la visualizzazione dell'icona del pannello di input. La possibilità di specificare che il pannello di input In-Place viene sempre espanso è nuovo con l'oggetto TextInputPanel e non è possibile usare l'oggetto PenInputPanel . La figura seguente mostra l'icona del pannello di input In-Place e gli stati espansi del pannello.
Oltre a poter controllare lo stato sul posto, è anche possibile che uno sviluppatore determini lo stato sul posto in un determinato momento ottenendo la proprietà CurrentInPlaceState . CurrentInPlaceState è uguale a DefaultInPlaceState quando il pannello di input non è visibile, tranne quando defaultInPlaceState è InPlaceState_Auto nel caso in cui CurrentInPlaceState diventi InPlaceState_HoverTarget. Gli eventi InPlaceVisibilityChanging InPlaceVisibilityChangedpossono essere usati per tenere traccia dello stato divisibilità del pannello di input di In-Place. /
Infine, uno sviluppatore può forzare il pannello di input di In-Place per nascondere o mostrare usando il metodo SetInPlaceVisibility . Se lo sviluppatore ha impostato in precedenza la proprietà DefaultInPlaceState , il pannello di input viene visualizzato nello stato specificato quando viene forzato a visualizzare. Un'applicazione è consentita solo per nascondere o visualizzare il pannello di input In-Place quando lo stato attivo è attualmente nella finestra a cui è collegato l'oggetto TextInputPanel e quando l'utente non dispone di pannello di input aperto in un'altra modalità di interazione, ad esempio ancorata o mobile. La possibilità di forzare il pannello di input di In-Place a nascondere o mostrare è anche nuova con l'oggetto TextInputPanel e non è possibile usare l'oggetto PenInputPanel .
Queste opzioni consentono agli sviluppatori di applicazioni di controllare il granularità fine quando viene visualizzato il pannello di input In-Place e in quale stato. Personalizzando lo stato predefinito sul posto e controllando la visibilità sul posto, uno sviluppatore di applicazioni può creare un flusso di lavoro personalizzato quando il pannello di input risponde alle impostazioni dell'applicazione o all'input dell'utente in un'applicazione.
Posizionamento assoluto dell'icona del pannello di input e del pannello di input
Probabilmente la nuova funzionalità più interessante trovata nell'oggetto TextInputPanel è la posizione assoluta del pannello di input di In-Place. Con questa nuova funzionalità uno sviluppatore di applicazioni può assicurarsi che il pannello di input In-Place non si sovrapponga a uno o più elementi visivi chiave in un layout dell'applicazione. L'uso dell'oggetto PenInputPanel è stato possibile posizionare il pannello di input In-Place rispetto a un campo di testo in base a un offset, tuttavia, il pannello di input si regola comunque per mantenere lo schermo. Per la prima volta in Vista un'applicazione può posizionare il pannello di input In-Place in una posizione assoluta usando le coordinate dello schermo. Inoltre, la responsabilità di mantenere il pannello di input sullo schermo viene lasciata allo sviluppatore dell'applicazione, rimuovendo quindi la possibilità che il pannello di input venga automaticamente riposizionato in modo casuale.
Nota
Le proprietà e i metodi illustrati in questa sezione si applicano solo quando il pannello di input si trova nella modalità di interazione In-Place.
I due metodi primari necessari per posizionare assolutamente il pannello di input In-Place sono SetInPlacePosition e SetInPlaceHoverTargetPosition. Il primo viene usato per specificare il percorso del pannello di input In-Place e il secondo viene usato per specificare il percorso dell'icona del pannello di input per il pannello di input In-Place. Se un'applicazione sceglie di impostare solo il percorso Icona pannello di input e non la posizione del pannello di input In-Place, il pannello di input In-Place viene visualizzato nel percorso predefinito determinato dal sistema. Analogamente, se un'applicazione riposiziona il pannello di input In-Place ma non l'icona del pannello di input, l'icona del pannello di input viene visualizzata nella posizione predefinita. La posizione viene specificata nelle coordinate dello schermo. Il punto effettivo posizionato è l'angolo superiore sinistro dell'icona del pannello di input o del pannello di input senza ampliare il comb di correzione. Quando il comb correzione viene espanso, il punto posizionato non cambia. (Vedere la figura 2 seguente) Non ci sono limiti in cui il pannello di input In-Place e l'icona del pannello di input In-Place possono essere inseriti ed è responsabilità delle applicazioni che chiamano questi metodi per tenerli sullo schermo. Entrambi i metodi sono sincroni, ovvero la posizione si verifica prima che il metodo restituisca. Nel caso in cui il pannello di input sia già aperto nella modalità di interazione mobile o ancorata, un tentativo di posizionare il pannello di input In-Place o l'icona del pannello di input In-Place ha esito negativo. Inoltre, i metodi non riescono se la finestra associata all'oggetto TextInputPanel non ha attualmente lo stato attivo.
Una chiamata a SetInPlacePosition o SetInPlaceHoverTargetPosition non causa automaticamente la visualizzazione dell'icona del pannello di input o del pannello di input In-Place, imposta semplicemente la posizione per la successiva visualizzazione. La chiamata a SetInPlaceVisibility può essere usata per forzarli a visualizzarli immediatamente.
Quando si posiziona il pannello di input In-Place calcolando se verrà disattivato lo schermo può essere un po' difficile. Per semplificare questo processo, esistono diverse proprietà dell'oggetto TextInputPanel che possono essere usate per semplificare questo processo. Insieme queste proprietà ed eventi possono essere usate per determinare le dimensioni esatte del pannello di input di In-Place in tutti i relativi stati:
- InPlaceBoundingRectangle: questa proprietà fornisce il rettangolo di selezione per il pannello di input In-Place quando viene visualizzata l'area di input più grande per la lingua di input corrente. Se il riquadro di scrittura o il riquadro caratteri sono determinati nell'area di input più grande, l'altezza del pulsante Inserisci è inclusa. Non include l'altezza del comb di correzione. Quando il pannello di input In-Place aumenta, viene attivata la coppia di eventi InPlaceSizeChanging / InPlaceSizeChanged e il valore di questa proprietà viene aggiornato per includere l'area di scrittura aggiuntiva o la scrittura della riga.
- PopUpCorrectionHeight: questa proprietà specifica l'altezza del comb correzione post-inserimento quando è posizionato sopra il pannello di input. Per ottenere l'altezza completa del pannello di input In-Place con il comb di correzione post-inserimento, aggiungere l'altezza dell'oggetto InPlaceBoundingRectangle al popUpCorrectionHeight.
Come alternativa più semplice per impostare la posizione assoluta dell'icona del pannello di input e del pannello di input, un'applicazione può solo specificare se le impostazioni predefinite del pannello di input In-Place In-Place vengono visualizzate sopra o sotto un campo di voce di testo. In questo modo è possibile evitare sovrapposizioni di elementi nel layout dell'applicazione in modo più controllato. A tale scopo, l'applicazione imposta l'opzione PreferredInPlaceDirection su InPlaceDirection_Bottom o InPlaceDirection_Top. La proprietà è una preferenza perché il pannello di input In-Place sostituisce la preferenza impostata dall'applicazione quando necessario per mantenere il pannello di input sullo schermo. Il valore predefinito del sistema consiste nel posizionare il pannello di input In-Place sotto un campo di testo quando possibile e in caso contrario per posizionarlo sopra. L'impostazione di PreferredInPlaceDirection su InPlaceDirection_Auto ripristina l'impostazione predefinita del sistema.
Insieme le proprietà, i metodi e gli eventi dell'oggetto TextInputPanel forniscono agli sviluppatori il controllo necessario sul pannello di input In-Place per poter posizionare in modo intelligente il pannello di input In-Place e l'icona del pannello di input in un layout dell'applicazione in modo che non interrompano il flusso di layout e in alcuni casi possono essere integrati. Questo nuovo livello di controllo è una grande vittoria per la progettazione dell'applicazione Tablet.
Accesso alle tre aree del pannello di input: scrittura, pad carattere e tastiera
Il pannello di input include tre aree di input, il riquadro di scrittura, il riquadro caratteri e la tastiera. Usando l'oggetto TextInputPanel un'applicazione può specificare l'area di input predefinita visualizzata all'utente quando viene aperto il pannello di input. Il motivo principale per cui un'applicazione deve eseguire questa operazione consiste nell'associare l'area di input al tipo di input di un campo specifico. Ad esempio, il riquadro di scrittura è probabilmente più adatto per compilare un campo di commenti, ma la tastiera potrebbe essere più conveniente per immettere un numero di serie del prodotto che contiene sia numeri che lettere. Per specificare l'area di input predefinita, un'applicazione imposta la proprietà DefaultInputArea su una delle tre aree di input definite dall'enumerazione PanelInputArea . La figura seguente mostra le tre aree di input.
L'area di input predefinita del sistema è il riquadro di scrittura per inglese, francese, tedesco, spagnolo, italiano, portoghese, olandese e tutte le altre lingue di input latine. Per le lingue di input asiatiche orientali, tra cui giapponese, cinese e coreano, l'area di input predefinita è il riquadro caratteri. Tuttavia, quando l'utente modifica l'area di input esegue l'override dell'area di input predefinita per la lingua di input corrente e viene archiviata come nuova impostazione predefinita per tale lingua di input. La tastiera è l'area di input predefinita per i campi password, indipendentemente dalla lingua di input, a meno che la sicurezza della password non sia stata disabilitata dall'utente o dai criteri di gruppo. In tutti i casi l'impostazione dell'area del pannello di input predefinito esegue l'override a livello di codice dell'area predefinita del pannello di input, a meno che il campo corrente non sia un campo password o il riconoscimento della grafia per il linguaggio di input corrente non supporti l'area di input selezionata a livello di codice. Impostando la proprietà DefaultInputArea su InPlaceDirection_Auto ripristina le impostazioni predefinite del sistema.
Indipendentemente dal fatto che l'area del pannello di input predefinito sia stata impostata a livello di codice o meno, l'utente può modificare l'area del pannello di input corrente dopo l'apertura del pannello di input. Dopo che l'utente ha modificato l'area di input corrente, la selezione dell'utente persiste fino a quando il pannello di input chiude o l'utente modifica nuovamente la selezione. Dopo aver chiuso e riaperto il pannello di input, l'area di input predefinita viene nuovamente impostata a livello di codice.
Poiché l'area del pannello di input corrente può essere diversa dall'area del pannello di input predefinito, un'applicazione può eseguire una query sulla proprietà CurrentInputArea per determinare quale area di input è attualmente visibile. Se il pannello di input non è attualmente visibile, l'area di input corrente è uguale all'area di input predefinita. La proprietà CurrentInputArea non è mai uguale a PanelInputArea_Auto. Se DefaultInputArea è uguale a PanelInputArea_Auto, CurrentInputArea è uguale all'ultima area di input visualizzata o all'impostazione predefinita di sistema per la lingua di input corrente se il pannello di input non è mai stato visualizzato.
La differenza primaria tra il supporto dell'area di input trovata nell'oggetto PenInputPanel e quella dell'oggetto TextInputPanel è il fatto che l'applicazione ha ora l'opzione per impostare l'area di input predefinita sul riquadro caratteri, oltre al riquadro di scrittura e alla tastiera.
Usando le proprietà precedenti un'applicazione può controllare l'area di input del pannello di input visualizzata in campi diversi e ottimizzare l'esperienza di input di testo dell'utente. Inoltre, l'applicazione può mantenere la consapevolezza dell'area di input corrente e prendere decisioni condizionali in base all'area di input più adatta all'attività utente corrente.
Informazioni dettagliate sulla modalità di interazione del pannello di input
In aggiunta alla possibilità di rilevare l'area di input corrente del pannello di input, è anche possibile rilevare la modalità di interazione corrente: In-Place, Docked o Mobile. Può essere importante che l'applicazione sappia la modalità di interazione corrente per comprendere come l'utente interagisce con l'applicazione o perché alcuni metodi e proprietà dell'oggetto TextInputPanel si applicano solo alla modalità di interazione In-Place. Ad esempio, nell'applicazione i reflow degli elementi dell'interfaccia utente esistenti e quindi posiziona il pannello di input In-Place su un'area vuota nelle interfacce utente deve verificare che la modalità di interazione corrente sia sul posto prima di apportare modifiche.
La proprietà CurrentInteractionMode , dell'oggetto TextInputPanel , archivia la modalità di interazione corrente come scelta dall'utente. Le modalità possibili sono definite dall'enumerazione InteractionMode come:
InteractionMode_InPlace: nel pannello di input della modalità di interazione In-Place viene visualizzato accanto al campo voce di testo attualmente attivo. Per impostazione predefinita, l'icona del pannello di input In-Place viene visualizzata quando un punto di inserimento viene inserito in un campo di voce di testo. Toccando l'icona del pannello di input, il pannello di input viene espanso. Il pannello di input In-Place è visibile solo quando un punto di inserimento si trova in un campo modificabile.
InteractionMode_Floating: la modalità di interazione mobile è simile alla modalità di interazione InPlace, tranne che non è associata a un punto di inserimento. Il pannello di input mobile viene aperto toccando la scheda Pannello di input visualizzata per impostazione predefinita sul bordo sinistro dello schermo. Sia il pannello di input mobile che il pannello di input possono essere trascinati e riposizionati dall'utente. Nella posizione mobile e nel controllo del pannello di input viene lasciato completamente all'utente.
InteractionMode_DockedTop: nel pannello di input della modalità di interazione Docked-Top viene visualizzato nella parte superiore della schermata e il desktop attivo viene ridimensionato in modo che il pannello di input non si sovrapponga ad altre finestre o elementi dell'interfaccia utente. Nel pannello di input in modalità ancorata non è possibile trascinare o spostare intorno.
InteractionMode_DockedBottom: la modalità di interazione Docked-Bottom è uguale alla modalità di Docked-Top, ad eccezione del pannello di input visualizzato nella parte inferiore della schermata.
Quando il pannello di input non è visibile, la modalità di interazione corrente è sul posto.
La pubblicazione del modello di interazione corrente è un altro modo in cui l'oggetto TextInputPanel fornisce altre informazioni sullo stato del pannello di input che sono state disponibili in qualsiasi versione precedente.
Informazioni dettagliate sulla modalità di correzione del pannello di input
L'aspetto finale del pannello di input che l'oggetto TextInputPanel fornisce informazioni dettagliate su e controllo è la modalità di correzione. Conoscere la modalità di correzione consente alle applicazioni di determinare le dimensioni correnti del pannello di input. Controllare il modo in cui la correzione post-inserimento si espande in un'applicazione è un modo per personalizzare l'esperienza di correzione in un'applicazione.
Esistono due modalità di base in cui è possibile visualizzare il comb correzione: pre-inserimento e post-inserimento. Il comb correzione pre-inserimento viene usato per correggere il testo prima di inserirlo in un'applicazione. Viene attivato toccando il testo in sospeso visualizzato sotto la baseline nel riquadro di scrittura come inchiostro utente. Il comb correzione post-inserimento viene usato per correggere il testo dopo l'inserimento in un'applicazione. Viene attivata posizionando il punto di inserimento in o selezionando testo inserito in precedenza. Oltre alle due modalità di base, esistono diverse varianti sul modo in cui può essere visualizzato il comb correzione post-inserimento. Prima di tutto può essere visualizzato sopra o sotto il pannello di input e in secondo luogo può essere compresso o espanso. Nello stato compresso il comb di correzione post-inserimento mostra solo un elenco di alternative. Nello stato espanso include sia le alternative che un'area per riscrivere la parola.
La proprietà CurrentCorrectionMode consente a un'applicazione di determinare la configurazione corrente del comb correzione. I valori possibili di questa proprietà come definito dalle enumerazioni CorrectionMode sono: NotVisible, PreInsertion, PostInsertionCollapsed e PostInsertionExpanded. Quando non è visibile alcun pannello di input o comb correzione, CurrentCorrectionMode è NotVisible.
Per impostazione predefinita, il sistema mostra il comb correzione post-inserimento espanso quando il testo seleziona corretto e lo mostra compresso quando il punto di inserimento viene inserito nel testo corretto. Un'applicazione può specificare dove deve essere sempre visualizzato il comb correzione post-inserimento impostando la proprietà ExpandPostInsertionCorrection su true. Il valore predefinito del sistema è false. Quando la proprietà ExpandPostInsertionCorrection viene usata in combinazione con l'interfaccia IHandWrittenTextInsertion , uno sviluppatore di applicazioni può aggiungere in modo economico il supporto di correzione alle applicazioni che non lo otterrebbero automaticamente.
Il rilevamento e il controllo dello stato di correzione del pannello di input sono una delle molte nuove funzionalità dell'oggetto TextInputPanel che rendono possibile l'integrazione più stretta del pannello di input e dell'applicazione.
Notifica eventi prima e dopo l'evento
Un altro aspetto della programmabilità del pannello di input che è notevolmente migliorato nell'oggetto TextInputPanel è il modello di evento. Invece di generare eventi che segnalano una modifica nello stato del pannello di input dopo che la modifica è stata eseguita, sono stati inviati eventi separati prima e dopo la modifica. Gli eventi che segnalano l'inizio di un evento contengono verbi presenti, ad esempio "Modifica" o "Inserimento", mentre gli eventi che segnalano la conclusione di un evento contengono verbi passati, ad esempio "Modificato" o "Inserito".
Questo modello di evento consente a un'applicazione di reagire a una modifica prima o quando si verifica. Il pannello di input è bloccato dal procedere con una modifica o ripresa dopo la modifica fino al completamento dei gestori eventi per tutti gli eventi. Questi eventi sono sincroni e in questo modo un'applicazione può ritardare una modifica fino al termine della reazione. Tuttavia, l'ora in cui un gestore eventi esegue il pannello di input diventa inaccessibile all'utente e può essere bloccato, pertanto è importante che il gestore eventi esegua correttamente. Tuttavia, non è possibile che un'applicazione impedisca o annulla un evento. Tutti i parametri di evento sono di sola lettura. Di seguito è riportata una descrizione delle sei coppie di eventi dell'oggetto TextInputPanel :
- InPlaceStateChanging / InPlaceStateChanged: notifica che lo stato sul posto sta per passare o ha appena spostato il puntatore del mouse su espanso o viceversa. I parametri sono lo stato nuovo e precedente sul posto. Coincidenze con una modifica nel valore della proprietà CurrentInPlaceState .
- InPlaceSizeChanging / InPlaceSizeChanged: indicato quando le dimensioni del pannello di input In-Place cambiano o cambiano a causa di un ridimensionamento dell'utente, della crescita automatica o di una modifica dell'area di input. I parametri sono il rettangolo di selezione nuovo e precedente. Coincidenze con una modifica nel valore della proprietà InPlaceBoundingRectangle .
- InputAreaChanging / InputAreaChanged: segnala quando l'area di input del pannello di input sta per modificare o è stata modificata dall'altra delle tre possibili aree di input: scrittura di pad, tastiera o tastiera. I parametri sono l'area di input nuova e precedente. Coincide con una modifica nel valore della proprietà CurrentInputArea
- CorrezioneModeChanging / CorrezioneModeChanged: notifica che la modalità di correzione sta per modificare o che è stata modificata. Le modalità di correzione possibili sono: non visibili, pre-inserimento, post-inserimento compresso e post-inserimento espanso. I parametri sono la modalità di correzione nuova e precedente. Coincide con una modifica nel valore della proprietà CurrentCorrectionMode .
- InPlaceVisibilityChanging / InPlaceVisibilityChanged: indica quando la visibilità del pannello di input In-Place sta per modificare o modificare. I parametri sono la visibilità nuova e precedente. Una nuova visibilità di false indica che il pannello di input In-Place non è aperto, ma non impedisce che il pannello di input sia visibile nella modalità di interazione mobile o ancorata.
- TextInserting / TextInserted: indica quando il testo sta per essere inserito o è stato inserito dal pannello di input. Il parametro è una matrice di oggetti InkDisp , ognuno contenente una riga dell'input penna e del testo che costituiscono l'inserimento. Altre informazioni su questo evento nella sezione successiva.
Questi eventi forniscono alle applicazioni informazioni essenziali sulle modifiche nel pannello di input e consentono loro di reagire di conseguenza. Anche in questo caso, la modifica nel modello di evento del pannello di input rappresenta un passo verso un'interazione migliore tra applicazioni e pannello di input.
Supporto per la raccolta dell'input penna e del testo immesso nel pannello di input
Infine, ma certamente non meno, una nuova funzionalità molto potente dell'oggetto TextInputPanel è la possibilità di ottenere l'oggetto input penna per il testo immesso tramite pannello di input fuori pannello di input al momento dell'inserimento del testo in un'applicazione. Questa funzionalità è stata spesso richiesta per lo scopo del rilevamento delle modifiche e del mantenimento dei record. Consente anche alle applicazioni di usare l'input penna nell'interfaccia utente come elemento statico o con una superficie di input penna personalizzata.
Per ricevere l'oggetto InkDisp per il testo immesso tramite pannello di input, un'applicazione deve registrarsi per ricevere gli eventi TextInserting o TextInserted generati dall'oggetto TextInputPanel . L'evento TextInserting viene generato immediatamente prima dell'inserimento del testo dal pannello di input in un'applicazione e il testo non viene inserito fino al completamento di tutti i gestori eventi. L'evento TextInserted viene generato immediatamente dopo l'inserimento del test. L'unico parametro per l'evento TextInserting e TextInserted è una matrice di oggetti InkDisp che include un oggetto InkDisp per ogni riga di testo inserita nel pannello di input. Nota: il pannello di input è inattivo mentre i gestori eventi sono in esecuzione e potrebbero essere bloccati all'utente, pertanto è importante rendere questi gestori eventi di peso leggero e assicurarsi di eseguire rapidamente. Inoltre, un'applicazione non deve creare un gestore per questo evento, a meno che non abbia un uso specifico per le informazioni, poiché è presente un costo di prestazioni associato a tale operazione. Il pannello di input esegue il marshalling dei dati dell'input penna solo se è presente un'applicazione che richiede i dati, in caso contrario, il pannello di input può ignorare questa operazione costosa. I parametri degli eventi TextInserting e TextInserted sono di sola lettura, ovvero non è possibile che le applicazioni cambino testo inserito prima che venga inserito nell'applicazione.
Le possibilità per le applicazioni che possono fare con questa nuova funzionalità sono ampie e non potevano essere più semplici da usare. Consentire l'inserimento di testo e input penna riconosciuto tramite pannello di input da raccogliere dalle applicazioni è solo un altro modo in cui la storia dello sviluppatore del pannello di input è migliorata in Windows Vista.
Conclusione
In generale, la storia della programmabilità per il pannello di input tablet PC è notevolmente migliorata con l'introduzione dell'oggetto TextInputPanel in Windows Vista. Usando l'oggetto TextInputPanel , gli sviluppatori di applicazioni hanno maggiore controllo e altre informazioni sul pannello di input dello stato nella versione precedente. Di conseguenza gli sviluppatori di applicazioni che creano nuove applicazioni Tablet PC o aggiornano applicazioni esistenti sono fortemente incoraggiati a usare l'oggetto TextInputPanel anziché l'oggetto PenInputPanel deprecato. Inoltre, il supporto per le nuove funzionalità, ad esempio la posizione assoluta del pannello di input e l'icona del pannello di input e la possibilità per l'applicazione di ricevere il testo del riconoscimento e l'input penna immessi tramite pannello di input abilitano nuove funzionalità e scenari dell'applicazione. L'inclusione di queste funzionalità e diverse altre sono in risposta diretta al feedback degli sviluppatori e contrassegnano i primi passi verso l'integrazione completa di Pannello di input con le applicazioni Tablet PC. In definitiva, l'espansione della funzionalità dell'applicazione Tablet PC è una grande vittoria per gli sviluppatori di applicazioni e la piattaforma Tablet PC.