Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa documentazione è destinata agli sviluppatori .NET Framework che vogliono usare le classi di automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per le informazioni più recenti sull'automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.
Questa panoramica descrive in che modo Automazione interfaccia utente Microsoft espone oggetti incorporati, o elementi figlio, all'interno di un documento di testo o di un contenitore.
In Automazione interfaccia utente un oggetto incorporato è qualsiasi elemento con limiti non testuali; ad esempio un'immagine, un collegamento ipertestuale, una tabella o un tipo di documento, ad esempio un foglio di calcolo di Microsoft Excel o un file Di Microsoft Windows Media. Ciò differisce dalla definizione standard, in cui un elemento viene creato in un'applicazione e incorporato o collegato all'interno di un'altra. Se l'oggetto può essere modificato all'interno dell'applicazione originale è irrilevante nel contesto di Automazione interfaccia utente.
Oggetti incorporati e albero di automazione interfaccia utente
Gli oggetti incorporati vengono considerati come singoli elementi all'interno della visualizzazione di controllo dell'albero di automazione interfaccia utente. Vengono esposti come elementi figlio del contenitore di testo in modo che possano essere accessibili tramite lo stesso modello di altri controlli in Automazione interfaccia utente.
Esempio di contenitore di testo con oggetti Embedded Table, Image e Hyperlink
Esempio della visualizzazione del contenuto per una parte del contenitore di testo precedente
Esporre oggetti incorporati tramite TextPattern e TextPatternRange
Usato insieme, la TextPattern classe del pattern di controllo e la TextPatternRange classe espongono metodi e proprietà che facilitano la navigazione e l'esecuzione di query su oggetti incorporati.
Il contenuto testuale (o testo interno) di un contenitore di testo o di un oggetto incorporato, ad esempio una cella di tabella o un collegamento ipertestuale, viene esposto come un flusso di testo continuo sia nella vista di controllo che nella vista del contenuto dell'albero di Automazione interfaccia utente. I limiti dell'oggetto vengono ignorati. Se un client di automazione interfaccia utente sta recuperando il testo allo scopo di recitare, interpretare o analizzare in qualche modo, l'intervallo di testo deve essere controllato per casi speciali, ad esempio una tabella con contenuto testuale o altri oggetti incorporati. A tale scopo, è possibile chiamare GetChildren per ottenere un AutomationElement oggetto per ogni oggetto incorporato e quindi chiamare RangeFromChild per ottenere un intervallo di testo per ogni elemento. Questa operazione viene eseguita in modo ricorsivo fino a quando non è stato recuperato l'intero contenuto testuale.
Esempio di un flusso di testo con oggetti incorporati e i loro intervalli di spazio.
Quando è necessario attraversare il contenuto di un intervallo di testo, viene coinvolta una serie di passaggi in background affinché il Move metodo venga eseguito correttamente.
L'intervallo di testo è normalizzato; ovvero, l'intervallo di testo viene compresso in un intervallo degenerato nell'endpoint Start , che rende superfluo l'endpoint End . Questo passaggio è necessario per rimuovere ambiguità nelle situazioni in cui un intervallo di testo si estende sui TextUnit limiti, ad esempio dove
{The URL https://www.microsoft.com is embedded in text"{" e "}" sono gli endpoint dell'intervallo di testo.L'intervallo risultante viene spostato all'indietro nel DocumentRange fino all'inizio del limite richiesto TextUnit.
L'intervallo viene spostato in avanti o indietro in base al DocumentRange numero richiesto di TextUnit limiti.
L'intervallo viene quindi espanso da uno stato degenerato dell'intervallo spostando l'endpoint End di un limite specificato TextUnit.
Esempi di regolazione di un intervallo di testo per Move() e ExpandToEnclosingUnit()
Scenari comuni
Le sezioni seguenti presentano esempi degli scenari più comuni che coinvolgono oggetti incorporati.
Legenda per gli esempi mostrati:
{ = Start
} = End
Collegamento ipertestuale
Esempio 1- Intervallo di testo che contiene un collegamento ipertestuale di testo incorporato
{The URL https://www.microsoft.com is embedded in text}.
| Metodo invocato | Risultato |
|---|---|
| GetText | Restituisce la stringa The URL https://www.microsoft.com is embedded in text. |
| GetEnclosingElement | Restituisce l'oggetto AutomationElement il più interno che contiene il range di testo, in questo caso l'oggetto AutomationElement che rappresenta il provider di testo stesso. |
| GetChildren | Restituisce un oggetto AutomationElement che rappresenta il controllo collegamento ipertestuale. |
RangeFromChild dove AutomationElement è l'oggetto restituito dal metodo precedente GetChildren . |
Restituisce l'intervallo che rappresenta https://www.microsoft.com. |
Esempio 2- Intervallo di testo che si estende parzialmente su un collegamento ipertestuale di testo incorporato
L'URL https://{[www]} è incorporato nel testo.
| Metodo invocato | Risultato |
|---|---|
| GetText | Restituisce la stringa "www". |
| GetEnclosingElement | Restituisce l'elemento più interno AutomationElement che racchiude l'intervallo di testo, in questo caso il controllo del collegamento ipertestuale. |
| GetChildren | Restituisce null poiché l'intervallo di testo non si estende sull'intera stringa URL. |
Esempio 3: intervallo di testo che si estende parzialmente sul contenuto di un contenitore di testo. Il contenitore di testo ha un collegamento ipertestuale di testo incorporato che non fa parte dell'intervallo di testo.
{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.
| Metodo invocato | Risultato |
|---|---|
| GetText | Restituisce la stringa "L'URL". |
| GetEnclosingElement | Restituisce l'oggetto AutomationElement il più interno che contiene il range di testo, in questo caso l'oggetto AutomationElement che rappresenta il provider di testo stesso. |
| Move con parametri di (TextUnit.Word, 1). | Sposta l'intervallo di testo su "http" perché il testo del collegamento ipertestuale è costituito da singole parole. In questo caso, il collegamento ipertestuale non viene considerato come oggetto singolo. L'URL {[http]} è incorporato nel testo. |
Immagine
Esempio 1- Intervallo di testo che contiene un'immagine incorporata
{L'immagine
è incorporata nel testo}.
| Metodo invocato | Risultato |
|---|---|
| GetText | Restituisce la stringa "è incorporato nel testo". Qualsiasi testo ALT associato all'immagine non può essere incluso nel flusso di testo. |
| GetEnclosingElement | Restituisce l'oggetto AutomationElement il più interno che contiene il range di testo, in questo caso l'oggetto AutomationElement che rappresenta il provider di testo stesso. |
| GetChildren | Restituisce un oggetto AutomationElement che rappresenta il controllo immagine. |
| RangeFromChild dove AutomationElement è l'oggetto restituito dal metodo precedente GetChildren . | Restituisce l'intervallo degenerato che rappresenta " ". |
Esempio 2: intervallo di testo che si estende parzialmente sul contenuto di un contenitore di testo. Il contenitore di testo contiene un'immagine incorporata che non fa parte dell'intervallo di testo.
{L'immagine}
è incorporato nel testo.
| Metodo invocato | Risultato |
|---|---|
| GetText | Restituisce la stringa "L'immagine". |
| GetEnclosingElement | Restituisce l'oggetto AutomationElement il più interno che contiene il range di testo, in questo caso l'oggetto AutomationElement che rappresenta il provider di testo stesso. |
| Move con parametri di (TextUnit.Word, 1). | Sposta l'intervallo di testo su "è". Poiché solo gli oggetti incorporati basati su testo sono considerati parte del flusso di testo, l'immagine in questo esempio non influisce su Move o sul relativo valore restituito (1 in questo caso). |
Tabella
Tabella usata per esempi
| Cella con immagine | Cella con testo |
|---|---|
|
X |
|
Sì |
Immagine per Z |
Z |
Esempio 1: ottenere il contenitore di testo dal contenuto di una cella.
| Metodo invocato | Risultato |
|---|---|
| GetItem con parametri (0,0) | Restituisce l'oggetto AutomationElement che rappresenta il contenuto della cella della tabella. In questo caso, l'elemento è un controllo di testo. |
RangeFromChild dove AutomationElement è l'oggetto restituito dal metodo precedente GetItem . |
Restituisce l'intervallo che copre l'immagine . |
GetEnclosingElement per l'oggetto restituito dal metodo precedente RangeFromChild . |
Restituisce l'oggetto AutomationElement che rappresenta la cella della tabella. In questo caso, l'elemento è un controllo di testo che supporta TableItemPattern. |
GetEnclosingElement per l'oggetto restituito dal metodo precedente GetEnclosingElement . |
Restituisce l'oggetto AutomationElement che rappresenta la tabella. |
GetEnclosingElement per l'oggetto restituito dal metodo precedente GetEnclosingElement . |
Restituisce l'oggetto AutomationElement che rappresenta il provider di testo stesso. |
Esempio 2: ottenere il contenuto di testo di una cella.
| Metodo invocato | Risultato |
|---|---|
| GetItem con parametri di (1,1). | Restituisce l'oggetto AutomationElement che rappresenta il contenuto della cella della tabella. In questo caso, l'elemento è un controllo di testo. |
RangeFromChild dove AutomationElement è l'oggetto restituito dal metodo precedente GetItem . |
Restituisce "Y". |
Vedere anche
- TextPattern
- TextPatternRange
- ITextProvider
- ITextRangeProvider
- Accedere agli oggetti incorporati usando l'Automazione dell'Interfaccia Utente
- Esporre il contenuto di una tabella usando l'automazione interfaccia utente
- Scorrere il testo utilizzando l'automazione dell'interfaccia utente
- Esempio di ricerca e selezione di TextPattern