Supporto di automazione interfaccia utente per il tipo di controllo DataGrid

Nota

Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di UI Automation gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su UI Automation, vedere API di automazione di Windows: UI Automation.

Questo argomento fornisce informazioni sul supporto per UI Automation Microsoft per il tipo di controllo DataGrid. In UI Automation, un tipo di controllo è un insieme di condizioni che un controllo deve soddisfare per poter utilizzare la proprietà ControlType. Le condizioni includono linee guida specifiche per la struttura ad albero di UI Automation, i valori delle proprietà di UI Automation e i criteri di controllo.

Il tipo di controllo DataGrid consente a un utente di usare facilmente gli elementi contenenti metadati rappresentati in colonne. I controlli griglia dati contengono righe di elementi e colonne di informazioni su tali elementi. Un controllo visualizzazione elenco in Esplora risorse di Microsoft Vista è un esempio che supporta il tipo di controllo DataGrid.

Le seguenti sezioni definiscono la struttura ad albero, le proprietà, i criteri di controllo e gli eventi di UI Automation necessari per il tipo di controllo DataGrid. I requisiti di UI Automation si applicano a tutti i controlli griglia di dati, indipendentemente dal fatto che Windows Presentation Foundation (WPF), Win32 o Windows Forms.

Struttura ad albero di automazione interfaccia utente obbligatoria

La tabella seguente illustra la vista controllo e la vista contenuto dell'albero di UI Automation che riguarda i controlli griglia dei dati e descrive cosa può essere contenuto in ogni vista. Per maggiori informazioni sull'albero di UI Automation, vedere Panoramica dell’albero di UI Automation.

Albero di UI Automation - Visualizzazione controllo Albero di UI Automation - Visualizzazione contenuto
DataGrid

  • Header (0, 1 o 2)

    • HeaderItem (numero di colonne o righe)
  • DataItem (0 o più, può essere strutturato in una gerarchia)
DataGrid

- DataItem (0 o più, può essere strutturato in una gerarchia)

Proprietà di automazione interfaccia utente obbligatorie

La tabella seguente elenca le proprietà il cui valore o la cui definizione è particolarmente rilevante per i controlli griglia dati. Per maggiori informazioni sulle proprietà di UI Automation, vedere Proprietà di UI Automation per i client.

Proprietà valore Note
AutomationIdProperty Vedere le note. Il valore di questa proprietà deve essere univoco in tutti i controlli in un'applicazione.
BoundingRectangleProperty Vedere le note. Il rettangolo più esterno che contiene l'intero controllo.
ClickablePointProperty Vedere le note. Supportata se è presente un rettangolo di delimitazione. Se non tutti i punti all'interno del rettangolo di delimitazione sono selezionabili ed è stato eseguito un processo di hit testing specializzato, eseguire l'override e implementare un punto selezionabile.
ControlTypeProperty DataGrid Questo valore è uguale per tutti i framework dell'interfaccia utente.
IsContentElementProperty Vero Il valore di questa proprietà deve essere sempre True. Ciò significa che il controllo griglia dati deve essere sempre presente nella visualizzazione contenuto dell'albero di UI Automation.
IsControlElementProperty Vero Il valore di questa proprietà deve essere sempre True. Ciò significa che il controllo griglia dati deve essere sempre presente nella visualizzazione controllo dell'albero di UI Automation.
IsKeyboardFocusableProperty Vedere le note. Se il controllo può ricevere lo stato attivo, deve supportare questa proprietà.
LabeledByProperty Vedere le note. Se è presente un'etichetta di testo statico, questa proprietà deve esporre un riferimento a tale controllo.
LocalizedControlTypeProperty "data grid" Stringa localizzata corrispondente al tipo di controllo DataGrid.
NameProperty Vedere le note. Il controllo griglia dati in genere ottiene il valore per la proprietà Name da un'etichetta di testo statico. Se non è presente alcuna etichetta di testo statico, lo sviluppatore di un'applicazione deve assegnare un valore alla proprietà Name . Il valore della proprietà Name non deve mai essere il contenuto testuale del controllo di modifica.

Pattern di controllo obbligatori per l'automazione interfaccia utente

La tabella seguente elenca i pattern di controllo che devono essere supportati da tutti i controlli griglia dati. Per altre informazioni sui pattern di controllo, vedere UI Automation Control Patterns Overview.

Pattern di controllo Supporto tecnico Note
IGridProvider Il controllo griglia dati stesso supporta sempre il pattern di controllo Grid perché gli elementi che contiene sono i metadati disposti in una griglia.
IScrollProvider Dipende da La possibilità di scorrere la griglia dati dipende dal contenuto e dalla presenza o meno delle barre di scorrimento.
ISelectionProvider Dipende da La possibilità di selezionare la griglia dati dipende dal contenuto.
ITableProvider Il controllo griglia dati ha sempre un'intestazione all'interno del relativo sottoalbero. Per tale motivo, il pattern di controllo Table deve essere supportato.

Gli elementi di dati nei contenitori di griglia dati supporteranno almeno:

  • Pattern di controllo Selection Item (se la griglia dati è selezionabile)

  • Pattern di controllo Scroll Item (se la griglia dati è scorribile)

  • Pattern di controllo Grid Item

  • TableItem (pattern di controllo)

Eventi di automazione interfaccia utente obbligatori

La seguente tabella elenca gli eventi di UI Automation che devono essere supportati da tutti i controlli griglia dei dati. Per altre informazioni sugli eventi, vedere UI Automation Events Overview.

Evento di UI Automation Supporto tecnico Note
AutomationFocusChangedEvent Richiesto None
Evento di modifica della proprietàBoundingRectangleProperty . Richiesto None
Evento di modifica della proprietàIsEnabledProperty . Richiesto None
Evento di modifica della proprietàIsOffscreenProperty . Richiesto None
LayoutInvalidatedEvent Dipende da None
StructureChangedEvent Richiesto None
Evento di modifica della proprietàCurrentViewProperty . Dipende da None
Evento di modifica della proprietàHorizontallyScrollableProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
Evento di modifica della proprietàHorizontalScrollPercentProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
Evento di modifica della proprietàHorizontalViewSizeProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
Evento di modifica della proprietàVerticalScrollPercentProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
Evento di modifica della proprietàVerticallyScrollableProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
Evento di modifica della proprietàVerticalViewSizeProperty . Dipende da Se il controllo supporta il pattern Scroll, deve supportare questo evento.
InvalidatedEvent Richiesto None

Esempio di tipo di controllo griglia dati

Nell'immagine seguente viene illustrato un controllo visualizzazione elenco che implementa il tipo di controllo DataGrid.

Graphic of a List View control with two data items

La vista controlli e la vista contenuto dell'albero di UI Automation relative al controllo Vista elenco sono visualizzate di seguito. I pattern di controllo per ogni elemento di automazione sono indicati tra parentesi.

Albero di UI Automation - Visualizzazione controllo Albero di UI Automation - Visualizzazione contenuto
  • DataGrid (Table, Grid, Selection)
  • Intestazione

    • HeaderItem "Nome" (Invoke)
    • HeaderItem "Ultima modifica" (Invoke)
    • HeaderItem "Dimensione" (Invoke)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)

    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
  • DataGrid (Table, Grid, Selection)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)

    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)

*L'esempio precedente mostra un DataGrid contenente più livelli di controlli. Il controllo Group ("Contoso") contiene due controlli DataItem ("Accounts Receivable.doc" e "Accounts Payable.doc"). Una copia DataGrid/GridItem è indipendente da una coppia in un altro livello. I controlli DataItem sotto Group possono essere esposti anche come tipo di controllo ListItem e quindi presentati più chiaramente come oggetti selezionabili, invece che come semplici elementi dati. Questo esempio non include i sottoelementi degli elementi di dati raggruppati.

Vedi anche