Aracılığıyla paylaş


UI Otomasyonu TextPattern'a Genel Bakış

Uyarı

Bu belgeler, System.Windows.Automation ad alanında tanımlanan yönetilen UI Otomasyonu sınıflarını kullanmak isteyen .NET Framework geliştiricilerine yöneliktir. UI Otomasyonu hakkında en son bilgiler için bkz. Windows Otomasyonu API'si: UI Otomasyonu.

Bu genel bakış, Microsoft UI Otomasyonu'nun kullanıcı arabirimi otomasyonu tarafından desteklenen platformlardaki metin denetimlerinin biçim ve stil öznitelikleri de dahil olmak üzere metin içeriğini kullanıma sunma amacıyla nasıl kullanılacağını açıklar. Bu denetimler Microsoft .NET Framework TextBox ve RichTextBox bunların Win32 eşdeğerlerini içerir ancak bunlarla sınırlı değildir.

Denetimin metin içeriğini ortaya çıkarmak, bir metin kapsayıcısının TextPattern içeriğini metin akışı olarak temsil eden denetim deseninin kullanılmasıyla gerçekleştirilir. Buna karşılık, biçim ve stil özniteliklerini kullanıma açmak için TextPattern sınıfının desteği gerekir. TextPatternRange, bir metin kapsayıcısında TextPattern ve Start uç noktalarından oluşan bir koleksiyonla bitişik veya birden çok, kopuk metin yayılımını temsil ederek End'i destekler. TextPatternRange seçim, karşılaştırma, alma ve dolaşma gibi işlevleri destekler.

Uyarı

Sınıflar TextPattern metin eklemek veya değiştirmek için bir araç sağlamaz. Ancak, denetime bağlı olarak, bu işlem UI Otomasyonu ValuePattern veya doğrudan klavye girişi aracılığıyla gerçekleştirilebilir. Bir örnek için Bkz. TextPattern Metin Örneği Ekle .

Bu genel bakışta açıklanan işlevsellik, yardımcı teknoloji satıcıları ve son kullanıcıları için çok önemlidir. Yardımcı teknolojiler kullanıcı için tam metin biçimlendirme bilgilerini toplamak ve programlı gezinti ve metin TextUnit seçimi (karakter, sözcük, satır veya paragraf) sağlamak için UI Otomasyonu'nu kullanabilir.

UI Otomasyonu TextPattern ile Metin Hizmetleri Çerçevesi karşılaştırması

Metin Hizmetleri Çerçevesi (TSF), masaüstünde ve uygulamalarda doğal dil hizmetleri ve gelişmiş metin girişi sağlayan basit ve ölçeklenebilir bir sistem çerçevesidir. Uygulamaların metin depolarını kullanıma sunabilecek arabirimler sağlamanın yanı sıra, bu metin deposu için meta verileri de destekler.

Ancak TSF, bağlama duyarlı senaryolara giriş eklemesi gereken uygulamalar için tasarlanmıştır, ancak TextPattern ekran okuyucular ve Braille cihazları için metin deposuna en iyi şekilde erişim sağlamaya yönelik salt okunur bir çözümdür (yukarıda belirtilen sınırlı geçici çözümle).

Kısacası, metin deposuna salt okunur erişim gerektiren erişilebilir teknolojiler TextPattern kullanabilir, ancak bağlam farkındalıklı giriş için TSF'in daha gelişmiş işlevselliğine ihtiyaç duyar.

Denetim Türleri

Metin

Metin denetimi, ekrandaki bir metin parçasını temsil eden temel öğedir.

Tek başına metin denetimi, bir formda etiket veya statik metin olarak kullanılabilir. Metin denetimleri, ListItem, TreeItem veya DataItem yapısı içinde de bulunabilir.

Uyarı

Metin denetimleri UI Otomasyon ağacının içerik görünümünde görünmeyebilir (bkz. UI Otomasyon Ağacına Genel Bakış). Bunun nedeni, metin denetimlerinin genellikle başka bir denetimin Name özelliği aracılığıyla görüntülenmesidir. Örneğin, düzenleme denetimini etiketlemek için kullanılan metin, Düzenleme denetiminin Name özelliği aracılığıyla gösterilir. Düzenleme denetimi UI Otomasyonu ağacının içerik görünümünde olduğundan, metin öğesinin ui Otomasyon ağacının bu görünümünde olması gerekli değildir. İçerik görünümünde görüntülenen tek metin, yedekli bilgi olmayan metindir. Bu, yardımcı teknolojilerin yalnızca kullanıcılarının ihtiyaç duyduğu bilgi parçalarını hızla filtrelemesini sağlar.

Düzenle

Düzenleme denetimleri, kullanıcının tek bir metin satırını görüntülemesine ve düzenlemesine olanak tanır.

Uyarı

Tek satırlık metin, belirli düzen senaryolarında kaydırılabilir.

Belge

Belge denetimleri, kullanıcının birden çok metin sayfasından bilgi almasına ve gezinmesine olanak tanır.

TextPattern İstemci API'leri

Türü Açıklama
System.Windows.Automation.TextPattern sınıfı Microsoft UI Otomasyonu metin modelinin giriş noktası.

Bu sınıf ayrıca TextPattern ile TextSelectionChangedEvent ve TextChangedEvent adlı iki olay dinleyicisini içerir.
System.Windows.Automation.Text.TextPatternRange sınıfı TextPattern desteği olan bir metin kapsayıcısının içindeki metin aralığının gösterimi.

UI Otomasyonu istemcileri, TextPatternRange kullanılarak oluşturulan bir metin aralığının mevcut geçerliliği konusunda dikkatli olmalıdır. Metin denetimindeki özgün metin tamamen yeni metinle değiştirilirse, geçerli metin aralığı geçersiz olur. Ancak, özgün metnin yalnızca bir bölümü değiştirildiğinde ve temel metin denetimi metin "işaretçisini" mutlak karakter konumlandırması yerine tutturucularla (veya uç noktalarla) yönetiyorsa, metin aralığı yine de geçerli olabilir.

İstemciler, üzerinde çalıştıkları metin içeriğinde yapılan değişikliklerin bildirimlerini almak için TextChangedEvent dinleyebilir.
System.Windows.Automation.AutomationTextAttribute sınıfı Metin aralığının biçimlendirme özniteliklerini tanımlamak için kullanılır.

TextPattern Sağlayıcı API'leri

ve TextPattern arabirimlerini yerel olarak veya Microsoft UI Otomasyonu proxy'leri aracılığıyla uygulayarak ITextProvider destekleyen ITextRangeProvider kullanıcı arabirimi öğeleri veya denetimleri, güçlü gezinti özellikleri sağlamanın yanı sıra, içerdikleri tüm metinler için ayrıntılı öznitelik bilgilerini kullanıma sunabilme özelliğine sahiptir.

TextPattern Denetim belirli öznitelikleri desteklemiyorsa, sağlayıcının her metin özniteliğini desteklemesi gerekmez.

Denetim metin alanı içinde metin seçimini veya metin imlecinin (veya sistem imlecinin) yerleştirilmesini destekliyorsa, bir sağlayıcının TextPattern ve GetSelection işlevlerini desteklemesi gerekir. Denetim bu işlevi desteklemiyorsa, bu yöntemlerden herhangi birini desteklemesi gerekmez. Ancak denetimin SupportedTextSelection özelliğini uygulayarak desteklediği metin seçimi türünü kullanıma sunması gerekir.

Sağlayıcı, TextPattern sabitleri TextUnit ve Character ile Document sabitlerini ve destekleyebileceği diğer TextUnit sabitleri her zaman desteklemelidir.

Uyarı

Sağlayıcı, aşağıdaki sırayla desteklenen TextUnit içindeki bir sonraki en büyük TextUnit'a erteleyerek, belirli bir TextUnit için desteği atlayabilir: Format, Word, Line, Paragraph, Page, Document ve .

Uygulama Programlama Arayüzü (API) Açıklama
ITextProvider arabirimi İstemci uygulamalarında destekleyen TextPattern yöntemleri, özellikleri ve öznitelikleri kullanıma sunar (bkz ITextProvider. ).
ITextRangeProvider arabirimi Metin sağlayıcısındaki bir metin aralığını temsil eder (bkz ITextRangeProvider. ).
System.Windows.Automation.TextPatternIdentifiers sınıfı Metin sağlayıcıları için tanımlayıcı olarak kullanılan değerleri içerir (bkz TextPatternIdentifiers. ).

Güvenlik

UI Otomasyonu mimarisi güvenlik göz önünde bulundurularak tasarlanmıştır (bkz. UI Otomasyonu Güvenliğine Genel Bakış). Ancak, bu genel bakışta açıklanan TextPattern sınıfları bazı güvenlik konuları gerektirir.

  • Microsoft UI Otomasyonu metin sağlayıcıları salt okunur arabirimler sağlar ve denetimdeki mevcut metni değiştirme olanağı sağlamaz.

  • UI Otomasyonu istemcileri, Microsoft UI Automation'u yalnızca tamamen "güvenilir" olduklarında kullanabilir. Buna örnek olarak yalnızca bilinen ve güvenilen uygulamaların çalışabileceği korumalı Oturum Açma Masaüstü gösterilebilir.

  • UI Otomasyonu sağlayıcılarının geliştiricileri, Microsoft UI Otomasyonu aracılığıyla denetimlerinde kullanıma sunmayı seçtikleri tüm bilgilerin temelde genel olduğunu ve diğer kodlar tarafından tamamen erişilebilir olduğunu bilmeli. Microsoft UI Automation, herhangi bir UI Automation istemcisinin güvenilirliğini belirlemek için hiçbir çaba harcamaz ve bu nedenle UI Otomasyonu sağlayıcısı korumalı içeriği veya hassas metin bilgilerini (parola alanları gibi) kullanıma sunmamalıdır.

  • Windows Vista için güvenlikteki en önemli değişikliklerden biri, en az ayrıcalıklı (veya Sınırlı) Kullanıcı Hesapları (LUA) ve UI Ayrıcalık Düzeyi Yalıtımı (UIPI) gibi teknolojileri kapsayan "Güvenli Giriş" olarak adlandırılır.

    • UIPI, bir programın başka bir "ayrıcalıklı" programı denetlemesini ve/veya izlemesini önleyerek kullanıcı girişini yanıltan işlemler arası pencere iletisi saldırılarını önler.

    • LUA, Yöneticiler grubundaki kullanıcılar tarafından çalıştırılan uygulamaların ayrıcalıklarıyla ilgili sınırlar ayarlar. Uygulamaların yönetici ayrıcalıklarına sahip olması gerekmez, ancak bunun yerine en az gerekli ayrıcalıklarla çalışır. Sonuç olarak LUA senaryolarında bazı kısıtlamalar uygulanabilir. Özellikle dize kesme (TextPattern dizeleri dahil), yönetici düzeyindeki uygulamalardan alınan dizelerin boyutunu sınırlamak gerekebilir, böylece bellek ayırma işlemi uygulamanın çalışmasını engellemeyecek şekilde yapılır.

Gösteri

TextPattern işlevlerinin çoğu için çapraz işlem çağrılarını kullandığından, içeriği işlerken performansı artırmak için bir önbelleğe alma mekanizması sağlamaz. Bu, GetCachedPattern veya TryGetCachedPattern yöntemleri kullanılarak erişilen Microsoft UI Otomasyonu'ndaki diğer denetim desenlerine benzemez.

Performansı iyileştirmeye yönelik bir taktik, UI Otomasyonu istemcilerinin GetText kullanarak orta boyutlu metin bloklarını almaya çalıştığından emin olmaktır. Örneğin, GetText(1) çağrıları her karakter için çapraz işlem isabetlerine neden olurken, bir GetText(-1) çağrısı bir çapraz işlem isabetine neden olur, ancak metin sağlayıcısının boyutuna bağlı olarak yüksek gecikme süresine sahip olabilir.

TextPattern Terminolojisi

Öznitelik
Metin aralığının biçimlendirme özelliği (örneğin, IsItalicAttribute veya FontNameAttribute).

Degenerate Range
Bozuk aralık, boş veya sıfır karakterli bir metin aralığıdır. TextPattern kontrol deseni amaçları için, metin ekleme noktası (veya sistem imleci) bozulmuş bir aralık olarak kabul edilir. Seçili metin yoksa, GetSelection metin ekleme noktasında sınırlı bir aralık döndürür ve RangeFromPoint başlangıçta sınırlı bir aralık döndürür. RangeFromChild ve GetVisibleRanges metin sağlayıcısı verilen koşulla eşleşen herhangi bir metin aralığı bulamadıklarında dejenere aralıklar döndürebilir. Bu bozuk aralık, metin sağlayıcısı içinde başlangıç uç noktası olarak kullanılabilir. FindText ve FindAttribute, bulunan bir aralık ile bozuk aralık arasındaki karışıklığı önlemek için, Microsoft Visual Basic .NET'te Nothing olarak boş referans döndürür.

Katıştırılmış Nesne
UI Otomasyonu metin modelinde iki tür katıştırılmış nesne vardır. Metin tabanlı içerik öğeleri (köprüler veya tablolar gibi) ve denetim öğeleri (resimler ve düğmeler gibi) olarak oluşur. Daha ayrıntılı bilgi için bkz. UI Otomasyonu Kullanarak Katıştırılmış Nesnelere Erişme.

Bitiş noktası
Metin kapsayıcısı içindeki bir metin aralığının mutlak Start veya End noktası.

TextPatternRangeEndpoints (başlangıç ve bitiş). Aşağıda bir başlangıç ve bitiş noktaları kümesi gösterilmektedir.

TextRange
Tüm ilişkili öznitelikleri ve işlevleri içeren bir metin kapsayıcısında başlangıç ve bitiş noktaları içeren bir metin aralığının gösterimi.

TextUnit
Metin aralığının mantıksal kesimlerinde gezinmek için kullanılan önceden tanımlanmış bir metin birimi (karakter, sözcük, satır veya paragraf).

Ayrıca bakınız