Przegląd automatyzacji interfejsu użytkownika — TextPattern

Uwaga

Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacja interfejsu użytkownika zdefiniowanych w System.Windows.Automation przestrzeni nazw. Aby uzyskać najnowsze informacje na temat automatyzacja interfejsu użytkownika, zobacz Interfejs API usługi Windows Automation: automatyzacja interfejsu użytkownika.

W tym omówieniu opisano sposób używania automatyzacja interfejsu użytkownika firmy Microsoft do uwidaczniania zawartości tekstowej, w tym atrybutów formatu i stylu, kontrolek tekstu na platformach obsługiwanych przez automatyzacja 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 program obsługuje TextPattern przez reprezentowanie ciągłych lub wielu rozłącznych zakresów tekstu w kontenerze tekstowym z kolekcją Start punktów końcowych i End . TextPatternRange obsługuje funkcje, takie jak wybór, porównanie, pobieranie i przechodzenie.

Uwaga

Klasy TextPattern nie zapewniają środków do wstawiania ani modyfikowania tekstu. Jednak w zależności od kontrolki może to być realizowane przez automatyzacja interfejsu użytkownika ValuePattern lub za pomocą bezpośrednich wprowadzania klawiatury. Zobacz przykład TextPattern Insert Text Sample (Przykład wstawiania tekstu).

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ć automatyzacja 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 Text Services Framework

Text Services Framework (TSF) to prosta i skalowalna struktura systemu, która umożliwia usługom języka naturalnego i zaawansowanym wprowadzaniem tekstu na pulpicie 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 obsługujących kontekst, natomiast TextPattern jest rozwiązaniem tylko do odczytu (z ograniczonym obejściem opisanym powyżej) przeznaczonym do zapewnienia zoptymalizowanego dostępu do magazynu tekstu dla czytników ekranu i urządzeń Braille.

Krótko mówiąc, dostępne technologie, które wymagają dostępu tylko do odczytu do magazynu tekstów, mogą używać TextPatternmetody , ale będą potrzebować bardziej złożonych funkcji TSF na potrzeby danych wejściowych obsługujących kontekst.

Typy kontrolek

Text

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 ListItemobiektu lub TreeItemDataItem.

Uwaga

Kontrolki tekstu mogą nie być wyświetlane w widoku zawartości drzewa automatyzacja interfejsu użytkownika (zobacz omówienie drzewa automatyzacja 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 automatyzacja interfejsu użytkownika, nie jest konieczne, aby sam element tekstowy był w tym widoku drzewa automatyzacja 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

Pojedynczy wiersz tekstu może opakowuje się w niektórych scenariuszach układu.

Dokument

Kontrolki dokumentów umożliwiają użytkownikowi nawigowanie i uzyskiwanie informacji z wielu stron tekstu.

Interfejsy API klienta TextPattern

Type Opis
Klasa System.Windows.Automation.TextPattern Punkt wejścia modelu tekstowego microsoft automatyzacja interfejsu użytkownika.

Ta klasa zawiera również dwa TextPattern odbiorniki TextSelectionChangedEvent zdarzeń i TextChangedEvent.
Klasa System.Windows.Automation.Text.TextPatternRange Reprezentacja zakresu tekstu w kontenerze tekstowym, który obsługuje TextPatternelement .

automatyzacja interfejsu użytkownika klienci powinni uważać na bieżącą ważność zakresu tekstu utworzonego przy użyciu polecenia 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ą rentowność, jeśli tylko część oryginalnego tekstu zostanie zmieniona, a podstawowa kontrolka tekstu zarządza tekstem "wskaźnik" za pomocą kotwic (lub punktów końcowych), a nie z położeniem znaku bezwzględnego.

Klienci mogą nasłuchiwać powiadomienia o TextChangedEvent wszelkich zmianach w zawartości tekstowej, z którą pracują.
Klasa System.Windows.Automation.AutomationTextAttribute 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 implementację ITextProvider interfejsów i ITextRangeProvider , natywnie lub za pośrednictwem serwerów proxy firmy Microsoft automatyzacja interfejsu użytkownika, mogą ujawniać szczegółowe informacje o atrybutach dla dowolnego tekstu, który zawiera oprócz zapewnienia niezawodnych możliwości nawigacji.

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 iSelect, jeśli kontrolka obsługuje GetSelection zaznaczanie tekstu lub umieszczanie kursora tekstu (lub daszka systemowego) w obszarze tekstowym. Jeśli kontrolka nie obsługuje tej funkcji, nie musi obsługiwać żadnej z tych metod. Jednak kontrolka musi uwidocznić typ zaznaczenia tekstu obsługiwanego przez zaimplementowanie SupportedTextSelection właściwości.

TextPattern Dostawca musi zawsze obsługiwać TextUnit stałeCharacter, Document a także wszelkie inne TextUnit stałe, które może obsługiwać.

Uwaga

Dostawca może pominąć obsługę określonego TextUnit przez odroczenie do następnego największego TextUnit obsługiwanego w następującej kolejności: Character, , Format, ParagraphWordLine, Pagei Document.

Interfejs API opis
ITextProvider Interfejs Uwidacznia metody, właściwości i atrybuty, które obsługują TextPattern aplikacje klienckie (zobacz ITextProvider).
ITextRangeProvider Interfejs Reprezentuje zakres tekstu w dostawcy tekstu (zobacz ITextRangeProvider).
Klasa System.Windows.Automation.TextPatternIdentifiers Zawiera wartości, które są używane jako identyfikatory dla dostawców tekstu (zobacz TextPatternIdentifiers).

Zabezpieczenia

Architektura automatyzacja interfejsu użytkownika została zaprojektowana z myślą o zabezpieczeniach (zobacz omówienie zabezpieczeń automatyzacja interfejsu użytkownika). Jednak klasy TextPattern opisane w tym omówieniu wymagają pewnych konkretnych zagadnień dotyczących zabezpieczeń.

  • Dostawcy tekstu automatyzacja interfejsu użytkownika firmy Microsoft udostępniają interfejsy tylko do odczytu i nie zapewniają możliwości zmiany istniejącego tekstu w kontrolce.

  • automatyzacja interfejsu użytkownika klienci mogą używać usługi Microsoft automatyzacja interfejsu użytkownika 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 automatyzacja interfejsu użytkownika dostawcy powinni mieć świadomość, że wszystkie informacje, które wybierają do ujawnienia w swoich mechanizmach kontroli za pośrednictwem automatyzacja interfejsu użytkownika firmy Microsoft, są zasadniczo publiczne i w pełni dostępne przez inny kod. Firma Microsoft automatyzacja interfejsu użytkownika nie podejmuje starań, aby określić wiarygodność dowolnego klienta automatyzacja interfejsu użytkownika i w związku z tym automatyzacja interfejsu użytkownika dostawca 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 Administracja istratorów. 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. W szczególności obcięcie ciągu (w tym ciągi TextPattern), w którym może być konieczne ograniczenie rozmiaru ciągów pobieranych z aplikacji na poziomie administratora, aby nie były wymuszane przydzielanie pamięci do punktu wyłączania 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 w przeciwieństwie do innych wzorców kontroli w usłudze Microsoft automatyzacja interfejsu użytkownika, do których można uzyskać dostęp przy użyciu GetCachedPattern metod lub TryGetCachedPattern .

Jedną z taktyki poprawy wydajności jest upewnienie się, że automatyzacja interfejsu użytkownika klienci próbują pobrać umiarkowanie wielkości bloki tekstu przy użyciu polecenia 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 jedno trafienie 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).

Odgeneruj zakres
Zgeneruj zakres jest pustym lub zerowym zakresem tekstu. Ze względu na wzorzec kontrolki TextPattern punkt wstawiania tekstu (lub daszek systemowy) jest uważany za zdegenerowany zakres. Jeśli nie zaznaczono żadnego tekstu, GetSelection zostanie zwrócony zwyrodny zakres w punkcie wstawiania tekstu i RangeFromPoint zwróci zwyrodny zakres jako 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 zgeneruj zakres może służyć jako początkowy punkt końcowy w ramach dostawcy tekstu. FindText i FindAttribute zwróć odwołanie o wartości null (Nothing w programie Microsoft Visual Basic .NET), aby uniknąć pomyłek z odnalezionym zakresem a zakresem degeneracji.

Obiekt osadzony
Istnieją dwa typy obiektów osadzonych w modelu tekstu automatyzacja 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 automatyzacja interfejsu użytkownika (Uzyskiwanie dostępu do obiektów osadzonych przy użyciu automatyzacja interfejsu użytkownika).

Punkt końcowy
Bezwzględny Start lub End punkt zakresu tekstu w kontenerze tekstu.

TextPatternRangeEndpoints (początek i koniec). 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 też