Condividi tramite


TextInputPanel per gli utenti di PenInputPanel

Il rilascio di Windows Vista include un nuovo oggetto programmabilità per il pannello di input tablet PC che offre una nuova gamma di possibilità per il modo in cui un'applicazione può usare e interagire con il pannello di input. Per la prima volta che 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 sul posizionamento quando 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 chiave dell'interfaccia utente di un'applicazione nel layout di un'applicazione o addirittura di rielaborare l'interfaccia utente di un'applicazione per creare spazio per il pannello di input In-Place e quindi inserirlo nello spazio riservato. Il nuovo modello di programmabilità include il supporto per più del semplice posizionamento, ma 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 immissione del 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 di applicazione, inclusi 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 una maggiore integrazione 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'oggettoPenInputPanel, viene deprecato e sostituito dal nuovo oggetto textInputPanel. Oltre a fornire nuove funzionalità di programmabilità, l'oggetto TextInputPanel fornisce anche tutte le funzionalità a livello di codice 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 windows XP Service Pack 2 o un pannello di input precedente. L'applicazione scritta in precedenza per usare l'oggetto PenInputPanel continuerà a funzionare con il pannello di input di Windows Vista, tuttavia, quando si scrivono nuove applicazioni Tablet gli sviluppatori sono fortemente invitati a usare il nuovo oggetto textInputPanel anziché l'oggetto PenInputPanel deprecato.

Ognuna delle opzioni di programmabilità del TextInputPanel oggetto può essere applicato in base a ogni campo di testo. Questa operazione viene eseguita collegando un'istanza dell'oggetto TextInputPanel utilizzando la proprietà AttachedEditWindow. La proprietà deve essere impostata sull'handle della finestra per il campo di testo.

Nota

: diversi metodi e proprietà 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 è in 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 determina la visualizzazione dell'icona del pannello di input accanto al campo e il tocco sull'icona del pannello di input fa sì che il pannello di input venga espanso. I metodi e le proprietà che si applicano solo quando il pannello di input si trova nella modalità di interazione sul posto contengono tutti 'InPlace' nel nome del metodo o 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 maggiore controllo in Windows Vista è la visibilità. Usando l'oggettotextInputPanelè 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 per primo come icona del pannello di input o immediatamente espanso. Combinando queste tecniche per controllare la visibilità con le tecniche per il controllo del posizionamento descritto nella sezione successiva, è possibile che gli sviluppatori di applicazioni creino punti di avvio personalizzati e flussi di lavoro personalizzati usando il pannello di input In-Place in un'applicazione.

Nota

Le proprietà e i metodi descritti 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 la visualizzazione del pannello di input In-Place e dell'icona del pannello di input impostando la proprietàInPlaceVisibleOnFocus su false. Impostandola su true ripristina l'impostazione predefinita del sistema quando possibile, purché non sia stata disabilitata dall'utente o da Criteri di gruppo. Questa opzione è utile per le applicazioni che includono soluzioni di immissione di testo personalizzate come alternativa al pannello di input.

In secondo luogo, impostando la proprietà DefaultInPlaceState uno sviluppatore può specificare lo stato sul posto, come specificato dall'enumerazioneInPlaceState, il pannello di input In-Place viene visualizzato 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 di passaggio del mouse, a meno che il pannello di input non sia già visibile nello stato espanso, nel qual caso il pannello di input rimane espanso. L'impostazione della proprietà DefaultInPlaceState su InPlaceState_Expanded fa sì che il pannello di input In-Place venga sempre visualizzato espanso, anziché l'icona del pannello di input visualizzata per prima e quindi richiedere all'utente di toccare 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 determina sempre la visualizzazione dell'icona del pannello di input. La possibilità di specificare che il pannello di input In-Place sempre visualizzato è nuovo con l'oggettoTextInputPanele non è possibile utilizzare l'oggetto PenInputPanel. La figura seguente mostra l'icona In-Place pannello di input e gli stati espansi del pannello.

'icona del pannello di input sul posto e stati espansi

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. L'CurrentInPlaceState è uguale a DefaultInPlaceState quando il pannello di input non è visibile, tranne quando il DefaultInPlaceState è InPlaceState_Auto nel qual caso il CurrentInPlaceState diventa InPlaceState_HoverTarget. Gli eventi InPlaceVisibilityChanging / InPlaceVisibilityChanged possono essere usati per tenere traccia dello stato di visibilità del pannello di input In-Place.

Infine, uno sviluppatore può forzare il pannello di input 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 mostrare il pannello di input In-Place quando lo stato attivo è attualmente nella finestra, l'oggetto TextInputPanel è collegato a 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 per nascondere o mostrare è anche nuova con l'oggetto TextInputPanel e non è possibile utilizzare l'oggetto PenInputPanel.

Queste opzioni consentono agli sviluppatori di applicazioni di controllare con 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 indipendentemente dalle modifiche dello stato attivo, uno sviluppatore dell'applicazione 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 è il posizionamento assoluto del pannello di input In-Place. Con questa nuova funzionalità uno sviluppatore di applicazioni può garantire che il pannello di input In-Place non si sovrapponga a uno o più elementi visivi chiave in un layout dell'applicazione. Utilizzando il PenInputPanel oggetto era possibile posizionare il pannello di input In-Place rispetto a un campo di testo basato su un offset, tuttavia, il pannello di input si regolava ancora per mantenere sullo 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 verrà automaticamente, e apparentemente casualmente, riposizionarsi.

Nota

Le proprietà e i metodi descritti in questa sezione si applicano solo quando il pannello di input si trova nella modalità di interazione In-Place.

 

I due metodi principali necessari per posizionare in modo assoluto il pannello di input In-Place sono SetInPlacePosition e SetInPlaceHoverTargetPosition. Il primo viene usato per specificare la posizione del pannello di input In-Place e il secondo viene usato per specificare la posizione dell'icona del pannello di input per il pannello di input In-Place pannello di input. Se un'applicazione sceglie di impostare solo la posizione dell'icona del pannello di input e non la posizione del pannello di input In-Place, il pannello di input In-Place viene visualizzato nella posizione predefinita determinata 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 è 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 espansione del comb di correzione.The actual point being positioned is the upper left corner of the Input Panel Icon or Input Panel or Input Panel with no Correction Comb expanded. Quando il comb correzione viene espanso, il punto posizionato non cambia. (Vedere la figura 2 seguente)Non vi sono restrizioni sulla posizione in cui è possibile posizionare il pannello di input In-Place e l'icona del pannello di input In-Place ed è responsabilità delle applicazioni che chiamano questi metodi per mantenerli sullo schermo. Entrambi i metodi sono sincroni, ovvero il posizionamento 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 hanno esito negativo se la finestra collegata al TextInputPanel oggetto non ha attualmente lo stato attivo.

Una chiamata a SetInPlacePosition o SetInPlaceHoverTargetPosition non comporta automaticamente la visualizzazione dell'icona del pannello di input o del pannello di input In-Place, semplicemente imposta la posizione per la successiva visualizzazione. La chiamata SetInPlaceVisibility può essere usata per forzare la visualizzazione immediata.

misurazioni del pannello di input sul posto

Quando si posiziona la In-Place Pannello di input calcolando se andrà fuori dallo schermo può essere un po 'difficile. Per semplificare questo processo, esistono diverse proprietà dell'oggetto TextInputPanel che può essere usato per semplificare questo processo. Insieme queste proprietà ed eventi possono essere usati per determinare le dimensioni esatte del pannello di input In-Place in tutti i relativi stati:

  • InPlaceBoundingRectangle: questa proprietà fornisce il rettangolo di delimitazione 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 per l'area di input più grande, viene inclusa l'altezza del pulsante Inserisci. Non include l'altezza del pettine di correzione. Quando il pannello di input In-Place aumenta automaticamente, InPlaceSizeChanging / Coppia di eventi InPlaceSizeChanged viene generato e il valore di questa proprietà viene aggiornato per includere l'area di scrittura aggiuntiva o la riga di scrittura.
  • popUpCorrectionHeight: questa proprietà specifica l'altezza del comb di 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 estratto, aggiungere l'altezza del InPlaceBoundingRectangle al PopUpCorrectionHeight.

Come alternativa più semplice all'impostazione della posizione assoluta della In-Place pannello di input e dell'icona del pannello di input, un'applicazione può solo specificare se il pannello di input In-Place viene visualizzato per impostazione predefinita sopra o sotto un campo di immissione di testo. In questo modo è possibile evitare la sovrapposizione degli elementi nel layout dell'applicazione in modo più controllato. A tale scopo, l'applicazione imposta ilPreferredInPlaceDirectionsu InPlaceDirection_Bottom o InPlaceDirection_Top. La proprietà è una preferenza perché il pannello di input In-Place sostituisce le preferenze impostate dall'applicazione quando necessario per mantenere il pannello di input sullo schermo. L'impostazione predefinita 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 del PreferredInPlaceDirection su InPlaceDirection_Auto ripristina l'impostazione predefinita del sistema.

Insieme le proprietà, i metodi e gli eventi dell'oggetto TextInputPanel offrono 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 potrebbero apparire integrati. Questo nuovo livello di controllo è una grande vittoria per la progettazione dell'applicazione Tablet.

Accesso alle tre aree del pannello di input: Tastiera, riquadro caratteri e tastiera

Il pannello di input include tre aree di input, il riquadro di scrittura, il riquadro dei caratteri e la tastiera. Usando il TextInputPanel oggetto un'applicazione può specificare l'area di input predefinita visualizzata all'utente all'apertura del 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 commenti, ma la tastiera può essere più conveniente per immettere un numero di serie del prodotto che contiene numeri e 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.

scrittura, carattere e pannello di input della tastiera

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 dell'Asia orientale, 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 predefinita del pannello di input sostituisce l'impostazione predefinita del sistema, a meno che il campo corrente non sia un campo password o il riconoscimento della grafia per la lingua di input corrente non supporti l'area di input selezionata a livello di codice. L'impostazione della proprietàDefaultInputAreasu InPlaceDirection_Auto ripristina le impostazioni predefinite del sistema.

Indipendentemente dal fatto che l'area predefinita del pannello di input sia stata impostata a livello di codice o meno, l'utente ha la possibilità di modificare l'area corrente del pannello di input dopo l'apertura del pannello di input. Dopo che l'utente ha modificato l'area di input corrente, la selezione dell'utente viene mantenuta finché il pannello di input non viene chiuso o l'utente cambia di nuovo la selezione. Dopo la chiusura e la riapertura del pannello di input, viene nuovamente visualizzata l'area di input predefinita impostata a livello di codice.

Poiché l'area del pannello di input corrente può essere diversa dall'area predefinita del pannello di input, 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 il DefaultInputArea è uguale a PanelInputArea_Auto, il 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 principale tra il supporto dell'area di input presente nella PenInputPanel oggetto e quello dell'oggetto TextInputPanel è il fatto che l'applicazione dispone ora dell'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

Oltre a poter rilevare l'area di input corrente del pannello di input, è anche possibile rilevare la modalità di interazione corrente: sul posto, ancorata o mobile. Può essere importante che l'applicazione conosca 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 reflows 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.

modalità del pannello di input ancorato, mobile e in tempo

La proprietàCurrentInteractionModedell'oggettoTextInputPanelarchivia la modalità di interazione corrente scelta dall'utente. Le modalità possibili sono definite dall'enumerazioneInteractionModecome segue:

InteractionMode_InPlace: nel pannello di input In-Place modalità di interazione viene visualizzato accanto al campo di immissione del testo attualmente attivo. Per impostazione predefinita, l'icona del pannello di input In-Place viene visualizzata quando un punto di inserimento viene posizionato in un campo di immissione di testo. Se si tocca 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, ad eccezione del fatto 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 la scheda Pannello di input possono essere trascinati e riposizionati dall'utente. Nel posizionamento in modalità mobile e il controllo del pannello di input viene lasciato interamente all'utente.

InteractionMode_DockedTop: nel pannello di input Docked-Top modalità di interazione viene visualizzato nella parte superiore dello schermo 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 spostarsi.

InteractionMode_DockedBottom: la modalità di interazione Docked-Bottom è identica 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 rispetto a quello disponibile in qualsiasi versione precedente.

Informazioni dettagliate sulla modalità di correzione del pannello di input

L'aspetto finale del pannello di input di cui l'oggetto TextInputPanel fornisce informazioni dettagliate e il controllo di è la modalità di correzione. Conoscere la modalità di correzione consente alle applicazioni di determinare le dimensioni correnti del pannello di input. Il controllo del 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 può essere visualizzato il comb di correzione: pre-inserimento e post-inserimento. Il comb di 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 linea di base nel riquadro di scrittura come inchiostri utente. Il comb di correzione post-inserimento viene utilizzato per correggere il testo dopo l'inserimento in un'applicazione. Viene attivato posizionando il punto di inserimento in o selezionando il testo inserito in precedenza. Oltre alle due modalità di base, esistono diverse varianti sul modo in cui può essere visualizzato il comb di correzione post-inserimento. Prima di tutto può apparire sopra o sotto il pannello di input e in secondo luogo può apparire 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.

pettine di correzione, pre e post-inserimento del pannello di input

La proprietà CurrentCorrectionMode consente a un'applicazione di determinare la configurazione corrente del comb correzione. I valori possibili di questa proprietà come definito dalle enumerazioniCorrectionModesono: NotVisible, PreInsertion, PostInsertionCollapsede PostInsertionExpanded. Quando non è visibile alcun pannello di input o comb di correzione, il CurrentCorrectionMode è NotVisible.

Per impostazione predefinita, il sistema mostra il comb di correzione post-inserimento espanso quando seleziona il testo corretto e lo mostra compresso quando il punto di inserimento viene inserito nel testo corretto. Un'applicazione può specificare la posizione in cui il comb correzione post-inserimento deve essere sempre espanso impostando la proprietàExpandPostInsertionCorrectionsu true. Il valore predefinito del sistema è false. Quando la proprietà ExpandPostInsertionCorrection viene utilizzata in combinazione con l'interfacciaIHandWrittenTextInsertionun'interfaccia dell'applicazione 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'oggettoTextInputPanelche rendono possibile l'integrazione più stretta del pannello di input e dell'applicazione.

Notifica degli eventi prima e dopo l'evento

Un altro aspetto della programmabilità del pannello di input notevolmente migliorato nell'oggettoTextInputPanelè il modello di evento. Ora invece di generare solo eventi che segnalano una modifica nello stato del pannello di input dopo che la modifica è stata apportata, sono stati inviati eventi separati prima e dopo la modifica. Gli eventi che segnalano l'inizio di un evento contengono verbi tensi, ad esempio 'Changing' o 'Inserting', mentre gli eventi che segnalano la conclusione di un evento contengono verbi passati, ad esempio 'Changed' o 'Inserted'.

Questo modello di evento consente a un'applicazione di reagire a una modifica prima o quando si verifica. Il pannello di input non può procedere con una modifica o riprendere 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, il tempo in cui un gestore eventi esegue il pannello di input diventa inaccessibile all'utente e può apparire bloccato, pertanto è importante che il gestore eventi funzioni correttamente. Non è tuttavia 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 essere spostato dal passaggio del mouse a quello espanso o viceversa. I parametri sono lo stato sul posto nuovo e precedente. Coincidenze con una modifica del valore della proprietàCurrentInPlaceState.
  • InPlaceSizeChanging / InPlaceSizeChanged: indicato quando la dimensione del pannello di input In-Place sta per cambiare o è stata modificata a causa di un ridimensionamento, una crescita automatica o una modifica dell'area di input. I parametri sono il rettangolo di delimitazione nuovo e precedente. Coincidenze con una modifica del valore della proprietà InPlaceBoundingRectangle.
  • InputAreaChanging / InputAreaChanged- Segnala quando l'area di input del pannello di input sta per cambiare o è cambiata da all'altra delle tre possibili aree di input: Scrittura del riquadro, tastiera o tastiera. I parametri sono l'area di input nuova e precedente. Coincide con una modifica del valore della proprietà CurrentInputArea
  • CorrectionModeChanging / CorrectionModeChanged- Notifica che la modalità di correzione sta per cambiare o è 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 del valore della proprietà CurrentCorrectionMode.
  • InPlaceVisibilityChanging / InPlaceVisibilityChanged- Indica quando la visibilità del pannello di input In-Place sta per cambiare o è stata modificata. 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. Parameter è una matrice di Oggetti InkDisp, ognuno contenente una riga dell'input penna e del testo che costituiscono l'inserimento. Per altre informazioni su questo evento, vedere la sezione successiva.

Questi eventi forniscono alle applicazioni informazioni essenziali sulle modifiche nel pannello di input e consentono di reagire di conseguenza. Anche in questo caso, la modifica nel modello di evento pannello di input rappresenta un passo verso una migliore interazione tra le applicazioni e il 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 dal pannello di input al momento dell'inserimento del testo in un'applicazione. Si tratta di una funzionalità spesso richiesta per il rilevamento delle modifiche e la conservazione dei record. Consente inoltre alle applicazioni di usare l'input penna nell'interfaccia utente come elemento statico o con una superficie di input penna personalizzata.

Per ricevere l'oggettoInkDisp per il testo immesso tramite pannello di input, un'applicazione deve registrarsi per ricevere l'TextInserting o TextInserted eventi 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 inserito dal pannello di input. Nota: il pannello di input è inattivo mentre i gestori eventi sono in esecuzione e potrebbero apparire bloccati all'utente, pertanto è importante rendere questi gestori eventi leggeri e assicurarsi che vengano eseguiti rapidamente. Inoltre, un'applicazione non deve creare un gestore per questo evento, a meno che non disponga di un uso specifico per le informazioni, poiché è previsto un costo delle prestazioni associato a tale operazione. Il pannello di input esegue il marshalling dei dati 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 di TextInserting e gli eventi TextInserted sono di sola lettura, ovvero non è possibile che le applicazioni modifichino il testo inserito prima dell'inserimento nell'applicazione.

Le possibilità per le applicazioni che possono eseguire con questa nuova funzionalità sono ampie e non possono essere più semplici da usare. Consentire il riconoscimento del testo e dell'input penna immesso tramite il 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

Nel complesso, la storia della programmabilità per il pannello di input del Tablet PC è notevolmente migliorata con l'introduzione dell'oggettoTextInputPanelin Windows Vista. Usando l'oggetto textInputPanel, gli sviluppatori di applicazioni hanno maggiore controllo e altre informazioni sullo stato del pannello di input nella versione precedente. Di conseguenza, gli sviluppatori di applicazioni che creano nuove applicazioni Tablet PC o aggiornano le applicazioni esistenti sono fortemente incoraggiati a usare l'oggetto TextInputPanel anziché l'oggetto penInputPanel ora deprecato PenInputPanel. Inoltre, il supporto per le nuove funzionalità, ad esempio il posizionamento assoluto del pannello di input e l'icona del pannello di input, e la possibilità per l'applicazione di ricevere testo di riconoscimento e input penna immessi tramite il pannello di input abilitano nuove funzionalità e scenari dell'applicazione. L'inclusione di queste funzionalità e molte altre sono in risposta diretta al feedback degli sviluppatori e contrassegnano i primi passi verso l'integrazione completa del pannello di input con le applicazioni Tablet PC. In definitiva, l'espansione della funzionalità dell'applicazione Tablet PC è una grande vittoria sia per gli sviluppatori di applicazioni che per la piattaforma Tablet PC.