Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.
W tym omówieniu opisano sposób używania automatyzacji interfejsu użytkownika firmy Microsoft do uwidaczniania zawartości tekstowej, w tym atrybutów formatu i stylu, kontrolek tekstu na platformach obsługiwanych przez automatyzację interfejsu użytkownika. Te kontrolki obejmują, ale nie są ograniczone do programu Microsoft .NET Framework TextBox , RichTextBox a także ich odpowiedniki Win32.
Uwidacznianie zawartości tekstowej kontrolki odbywa się za pomocą TextPattern wzorca kontrolki, który reprezentuje zawartość kontenera tekstu jako strumień tekstowy. Z kolei TextPattern wymaga obsługi TextPatternRange klasy, aby uwidaczniać atrybuty formatu i stylu. TextPatternRange wspiera TextPattern przez reprezentowanie ciągłych lub wielu rozłącznych zakresów tekstu w kontenerze tekstowym z kolekcją Start i End punktów końcowych. TextPatternRange obsługuje funkcje, takie jak wybór, porównanie, pobieranie i przechodzenie.
Uwaga / Notatka
Klasy TextPattern nie zapewniają środków do wstawiania ani modyfikowania tekstu. Jednak w zależności od kontrolki, może to być realizowane przez automatyzację interfejsu użytkownika lub za pomocą bezpośredniego wprowadzania danych z klawiatury. Zobacz TextPattern Insert Text Sample jako przykład.
Funkcje opisane w tym omówieniu mają kluczowe znaczenie dla sprzedawców technologii pomocniczych i ich użytkowników końcowych. Technologie pomocnicze mogą używać automatyzacji interfejsu użytkownika do zbierania pełnych informacji o formatowaniu tekstu dla użytkownika i zapewnienia programowej nawigacji i zaznaczania tekstu według TextUnit (znak, wyraz, wiersz lub akapit).
Automatyzacja interfejsu użytkownika TextPattern a struktura usług tekstowych
Text Services Framework (TSF) to prosty i skalowalny system, który umożliwia usługi języka naturalnego oraz zaawansowane wprowadzanie tekstu zarówno na pulpicie, jak i w aplikacjach. Oprócz udostępniania interfejsów dla aplikacji w celu uwidocznienia ich magazynu tekstu obsługuje również metadane dla tego magazynu tekstu.
Jednak TSF został zaprojektowany dla aplikacji, które muszą wprowadzać dane wejściowe do scenariuszy świadomych kontekstu, natomiast TextPattern jest rozwiązaniem przeznaczonym tylko do odczytu (z ograniczonym obejściem wspomnianym powyżej) przeznaczonym do zapewnienia zoptymalizowanego dostępu do przechowywania tekstu dla czytników ekranu i urządzeń Braille'a.
Krótko mówiąc, dostępne technologie, które wymagają dostępu tylko do odczytu do repozytorium tekstów, mogą używać TextPattern, ale będą potrzebować bardziej złożonych funkcji TSF w celu kontekstowego przetwarzania danych wejściowych.
Typy kontrolek
Tekst
Kontrolka Tekst jest podstawowym elementem reprezentującym fragment tekstu na ekranie.
Autonomiczna kontrolka tekstu może służyć jako etykieta lub tekst statyczny w formularzu. Kontrolki tekstu mogą być również zawarte w strukturze ListItem, TreeItem lub DataItem.
Uwaga / Notatka
Kontrolki tekstu mogą nie być wyświetlane w widoku zawartości drzewa automatyzacji interfejsu użytkownika (zobacz Omówienie drzewa automatyzacji interfejsu użytkownika). Dzieje się tak, ponieważ kontrolki tekstowe są często wyświetlane za pośrednictwem właściwości Name innej kontrolki. Na przykład tekst używany do etykietowania kontrolki Edytuj jest udostępniany za pośrednictwem właściwości Name kontrolki Edytuj. Ponieważ kontrolka Edytuj znajduje się w widoku zawartości drzewa automatyzacji interfejsu użytkownika, nie jest konieczne, aby sam element tekstowy był w tym widoku drzewa automatyzacji interfejsu użytkownika. Jedynym tekstem wyświetlanym w widoku zawartości jest tekst, który nie jest nadmiarowy. Dzięki temu każda technologia pomocna może szybko filtrować tylko te informacje, których potrzebują użytkownicy.
Edytuj
Kontrolki edycji umożliwiają użytkownikowi wyświetlanie i edytowanie pojedynczego wiersza tekstu.
Uwaga / Notatka
Pojedynczy wiersz tekstu może być zawijany w pewnych sytuacjach układu.
Dokument
Kontrolki dokumentów umożliwiają użytkownikowi nawigowanie i uzyskiwanie informacji z wielu stron tekstu.
Interfejsy API klienta TextPattern
Typ | Opis |
---|---|
System.Windows.Automation.TextPattern klasa |
Punkt wejścia dla modelu tekstowego automatyzacji interfejsu użytkownika firmy Microsoft. Ta klasa zawiera również dwa TextPattern odbiorniki TextSelectionChangedEvent zdarzeń i TextChangedEvent. |
System.Windows.Automation.Text.TextPatternRange klasa |
Reprezentacja zakresu tekstu w kontenerze tekstowym, który obsługuje element TextPattern. Klienci automatyzacji interfejsu użytkownika powinni uważać na aktualną ważność zakresu tekstu utworzonego przy użyciu TextPatternRange. Jeśli oryginalny tekst w kontrolce tekstu zostanie całkowicie zastąpiony nowym tekstem, bieżący zakres tekstu stanie się nieprawidłowy. Jednak zakres tekstu może nadal mieć pewną przydatność, jeśli tylko część oryginalnego tekstu zostanie zmieniona, a kontrolka tekstu zarządza jego wskaźnikiem przy użyciu kotwic (lub punktów końcowych), zamiast bezwzględnego pozycjonowania znaków. Klienci mogą nasłuchiwać TextChangedEvent w celu otrzymania powiadomienia o wszelkich zmianach w zawartości tekstowej, z którą pracują. |
System.Windows.Automation.AutomationTextAttribute klasa |
Służy do identyfikowania atrybutów formatowania zakresu tekstu. |
Interfejsy API dostawcy TextPattern
Elementy interfejsu użytkownika lub kontrolki, które obsługują TextPattern poprzez implementację interfejsów ITextProvider i ITextRangeProvider, natywnie lub za pośrednictwem oprogramowania pomocniczego automatyzacji interfejsu użytkownika Microsoft, są zdolne do ujawniania szczegółowych informacji o atrybutach dla dowolnego tekstu, który zawierają, a także do zapewniania solidnych możliwości nawigacyjnych.
TextPattern Dostawca nie musi obsługiwać wszystkich atrybutów tekstowych, jeśli kontrolka nie obsługuje żadnych określonych atrybutów.
TextPattern Dostawca musi obsługiwać funkcje GetSelection i Select, jeśli kontrolka obsługuje zaznaczanie tekstu lub umieszczanie kursora tekstu (lub kursora systemowego) w obszarze tekstowym. Jeśli kontrolka nie obsługuje tej funkcji, nie musi obsługiwać żadnej z tych metod. Jednak kontrolka musi określić typ zaznaczenia tekstu, który obsługuje, poprzez zaimplementowanie właściwości SupportedTextSelection.
TextPattern Dostawca zawsze musi obsługiwać TextUnit stałe Character oraz Document, a także wszelkie inne TextUnit stałe, które może obsługiwać.
Uwaga / Notatka
Dostawca może pominąć obsługę określonego TextUnit, przekładając ją na następny największy TextUnit, obsługiwany w następującej kolejności: Character, Format, Word, Line, Paragraph, Page i Document.
API (Interfejs Programowania Aplikacji) | Opis |
---|---|
interfejs ITextProvider |
Uwidacznia metody, właściwości i atrybuty, które obsługują TextPattern aplikacje klienckie (zobacz ITextProvider). |
interfejs ITextRangeProvider |
Reprezentuje zakres tekstu w dostawcy tekstu (zobacz ITextRangeProvider). |
System.Windows.Automation.TextPatternIdentifiers klasa |
Zawiera wartości, które są używane jako identyfikatory dla dostawców tekstu (zobacz TextPatternIdentifiers). |
Bezpieczeństwo
Architektura automatyzacji interfejsu użytkownika została zaprojektowana z myślą o zabezpieczeniach (zobacz Omówienie zabezpieczeń automatyzacji interfejsu użytkownika). Jednak klasy TextPattern opisane w tym omówieniu wymagają pewnych konkretnych zagadnień dotyczących zabezpieczeń.
Dostawcy tekstu automatyzacji interfejsu użytkownika firmy Microsoft udostępniają interfejsy tylko do odczytu i nie zapewniają możliwości zmiany istniejącego tekstu w kontrolce.
Użytkownicy automatyzacji interfejsu użytkownika mogą korzystać z Microsoft UI Automation tylko wtedy, gdy są w pełni "zaufani". Przykładem może być chroniony program Logon Desktop, w którym można uruchamiać tylko znane i zaufane aplikacje.
Deweloperzy dostawców automatyzacji interfejsu użytkownika powinni mieć świadomość, że wszystkie informacje, które zdecydują się uwidocznić w swoich kontrolkach za pośrednictwem automatyzacji interfejsu użytkownika firmy Microsoft, są zasadniczo publiczne i w pełni dostępne przez inny kod. Automatyzacja interfejsu użytkownika firmy Microsoft nie podejmuje starań, aby określić wiarygodność klienta automatyzacji interfejsu użytkownika, dlatego dostawca automatyzacji interfejsu użytkownika nie powinien ujawniać chronionej zawartości ani poufnych informacji tekstowych (takich jak pola haseł).
Jedną z najważniejszych zmian w zabezpieczeniach systemu Windows Vista jest szeroko nazywana "bezpiecznym wejściem", która obejmuje technologie takie jak konta użytkowników o najniższych uprawnieniach (lub ograniczone) (LUA) i izolacja na poziomie uprawnień interfejsu użytkownika (UIPI).
Interfejs UIPI uniemożliwia jednemu programowi kontrolowanie i/lub monitorowanie innego programu bardziej "uprzywilejowanego", zapobiegając atakom komunikatów między procesami, które fałszuje dane wejściowe użytkownika.
LuA ustawia limity uprawnień aplikacji uruchamianych przez użytkowników w grupie Administratorzy. Aplikacje nie muszą mieć uprawnień administratora, ale zamiast tego będą uruchamiane z najmniejszymi uprawnieniami wymaganymi. W związku z tym w scenariuszach LUA mogą istnieć pewne ograniczenia. Przede wszystkim obcinanie ciągów (w tym ciągów TextPattern), gdzie może być konieczne ograniczenie rozmiaru ciągów pobieranych z aplikacji na poziomie administratora, aby nie dochodziło do wymuszania przydzielania pamięci, co mogłoby doprowadzić do wyłączenia aplikacji.
Wydajność
Ponieważ funkcja TextPattern opiera się na wywołaniach między procesami dla większości jej funkcji, nie zapewnia mechanizmu buforowania w celu zwiększenia wydajności podczas przetwarzania zawartości. Jest to niepodobne do innych wzorców sterowania w usłudze Microsoft UI Automation, do których można uzyskać dostęp przy użyciu metod GetCachedPattern lub TryGetCachedPattern.
Jedną z taktyk poprawy wydajności jest upewnienie się, że klienci automatyzacji interfejsu użytkownika próbują pobrać bloki tekstu o umiarkowanej wielkości przy użyciu GetText. Na przykład wywołania metody GetText(1) będą powodować trafienia między procesami dla każdego znaku, natomiast jedno wywołanie metody GetText(-1) spowoduje naliczenie jednego trafienia między procesami, ale może mieć duże opóźnienie w zależności od rozmiaru dostawcy tekstu.
Terminologia textPattern
Atrybut
Charakterystyka formatowania zakresu tekstu (na przykład IsItalicAttribute lub FontNameAttribute).
Zdegenerowany Zakres
Zdegenerowany zakres to pusty lub zerowy zakres tekstu. Ze względu na wzorzec kontrolny TextPattern punkt wstawiania tekstu (lub kursor systemowy) jest uważany za zdegenerowany zakres. Jeśli nie zaznaczono żadnego tekstu, GetSelection zwróci zdegenerowany zakres w punkcie wstawiania tekstu, a RangeFromPoint zwróci zdegenerowany zakres jako jego początkowy punkt końcowy.
RangeFromChild i GetVisibleRanges może zwracać degenerujące zakresy, gdy dostawca tekstu nie może odnaleźć żadnych zakresów tekstu pasujących do danego warunku. Ten zdegenerowany zakres może służyć jako punkt końcowy u dostawcy tekstu.
FindText i FindAttribute zwracają odwołanie o wartości null (Nothing
w programie Microsoft Visual Basic .NET), aby uniknąć pomyłek między odnalezionym zakresem oraz degeneracyjnym zakresem.
Obiekt osadzony
Istnieją dwa typy obiektów osadzonych w modelu tekstu automatyzacji interfejsu użytkownika. Składają się one z elementów zawartości opartej na tekście, takich jak hiperlinki lub tabele, oraz elementów sterujących, takich jak obrazy i przyciski. Aby uzyskać bardziej szczegółowe informacje, zobacz Access Embedded Objects Using UI Automation (Uzyskiwanie dostępu do obiektów osadzonych przy użyciu automatyzacji interfejsu użytkownika).
Punkt końcowy
Bezwzględny Start lub End punkt zakresu tekstu w kontenerze tekstu.
Poniżej przedstawiono zestaw punktów początkowych i końcowych.
TextRange
Reprezentacja zakresu tekstu z punktami początkowymi i końcowymi w kontenerze tekstowym zawierającym wszystkie skojarzone atrybuty i funkcje.
TextUnit
Wstępnie zdefiniowana jednostka tekstu (znak, wyraz, wiersz lub akapit) używana do nawigowania po segmentach logicznych zakresu tekstu.
Zobacz także
- Wzorce kontrolek automatyzacji interfejsu użytkownika dla klientów
- Omówienie wzorców automatyzacji kontrolek interfejsu użytkownika
- Omówienie drzewa automatyzacji interfejsu użytkownika
- Użyj buforowania w automatyzacji interfejsu użytkownika
- obsługują wzorce kontrolek w dostawcy automatyzacji interfejsu użytkownika
- mapowanie wzorca kontrolki dla klientów automatyzacji interfejsu użytkownika
- Struktura usług tekstowych