Utilizzo degli elementi virtualizzati

Questo argomento descrive come usare la funzionalità fornita dai pattern di controllo ItemContainer e VirtualizedItem per trovare e recuperare informazioni sugli elementi virtualizzati.

Panoramica della virtualizzazione

I controlli che contengono un numero elevato di elementi figlio possono utilizzare la virtualizzazione per gestire in modo efficiente gli elementi. Con la virtualizzazione, il controllo mantiene le informazioni complete in memoria solo per un subset di elementi in un determinato momento. In genere, il subset include solo gli elementi attualmente visibili all'utente. Le informazioni complete sugli elementi virtualizzati rimanenti vengono mantenute nello spazio di archiviazione e vengono caricate in memoria, o realizzate, perché il controllo lo richiede, ad esempio, perché i nuovi elementi diventano visibili all'utente.

I controlli che usano la virtualizzazione rappresentano una sfida perché solo gli elementi realizzati sono completamente disponibili come elementi di automazione interfaccia utente Microsoft nell'albero di automazione interfaccia utente. Gli elementi virtualizzati non esistono nell'albero, quindi le informazioni su di essi non sono disponibili per i client. Per recuperare informazioni sugli elementi virtualizzati, i client devono avere un modo per forzare l'automazione dell'interfaccia utente a passare la richiesta per realizzare gli elementi al controllo. Una volta realizzati gli elementi, l'automazione interfaccia utente può creare elementi di automazione interfaccia utente. Automazione interfaccia utente include due pattern di controllo per consentire ai client di usare elementi virtualizzati: ItemContainer e VirtualizedItem.

Come un controllo supporta la virtualizzazione

Qualsiasi controllo che può contenere elementi virtualizzati deve supportare il pattern di controllo ItemContainer . Inoltre, qualsiasi elemento che può essere virtualizzato deve supportare il pattern di controllo VirtualizedItem . Le funzionalità esposte dai pattern di controllo ItemContainer e VirtualizedItem sono accessibili ai client tramite le interfacce IUIAutomationItemContainerPattern e IUIAutomationVirtualizedItemPattern .

Come i client trovano e realizzano elementi virtualizzati

I client possono usare il metodo IUIAutomationItemContainerPattern:: FindItemByProperty per cercare gli elementi figlio nel contenitore in base al valore di una determinata proprietà. Il metodo può anche recuperare il primo elemento nel contenitore o l'elemento che segue l'elemento specificato. Se viene trovato un elemento figlio corrispondente, FindItemByProperty recupera un'interfaccia IUIAutomationElement per l'elemento. Tuttavia, se l'elemento figlio è virtualizzato, l'interfaccia IUIAutomationElement è un segnaposto. L'errore UIA _ E _ ELEMENTNOTAVAILABLE si verifica quando il client tenta di usare l'interfaccia IUIAutomationElement per recuperare i valori di proprietà o chiamare metodi non ancora disponibili. Le proprietà o i metodi disponibili tramite un segnaposto dipendono dall'implementazione del controllo. L'unico requisito per un segnaposto è supportare l'interfaccia IUIAutomationVirtualizedItemPattern .

L'errore UIA _ E _ ELEMENTNOTAVAILABLE indica al client che un elemento può essere virtualizzato. Il client deve rispondere recuperando l'interfaccia IUIAutomationVirtualizedItemPattern per l'elemento e quindi realizzando l'elemento chiamando il metodo IUIAutomationVirtualizedItemPattern:: réalisateur . Se l'operazione ha esito positivo, l'interfaccia IUIAutomationElement è completamente funzionante con tutte le proprietà appropriate disponibili.

A seconda dell'implementazione del controllo, la chiamata a IUIAutomationVirtualizedItemPattern:: rende possibile il controllo per scorrere l'elemento nella visualizzazione. Tuttavia, un client non deve basarsi sullo scorrimento della visualizzazione o rendere visibile l'elemento. Per assicurarsi che l'elemento sia visibile, il client può usare il metodo IUIAutomationScrollItemPattern:: ScrollIntoView .

Esempio

Per un esempio di codice che illustra come usare il supporto di automazione interfaccia utente per la virtualizzazione, vedere come recuperare un elemento virtualizzato.

Cenni preliminari sui pattern di controllo per l'automazione interfaccia utente