UI Otomasyon TextPattern Öğesine Genel Bakış

Not

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

Bu genel bakış, microsoft UI Otomasyonu kullanarak UI Otomasyonu desteklenen platformlardaki metin denetimlerinin biçim ve stil öznitelikleri de dahil olmak üzere metin içeriğinin nasıl kullanıma açıldığı açıklanmaktadır. 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, TextPattern biçim ve stil özniteliklerini kullanıma açmak için sınıfının desteği TextPatternRange gerekir. TextPatternRangeve uç noktaları koleksiyonuna StartEnd sahip bir metin kapsayıcısında bitişik veya birden çok, kopuk metin yayılımı temsil ederek desteklerTextPattern. TextPatternRange seçim, karşılaştırma, alma ve dolaşma gibi işlevleri destekler.

Not

Sınıflar TextPattern metin eklemek veya değiştirmek için bir araç sağlamaz. Ancak, denetime bağlı olarak, bu 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 kullanabilir.

TextPattern ve Text Services Framework karşılaştırması UI Otomasyonu

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 kullanabilir TextPattern, ancak bağlama duyarlı giriş için TSF'nin daha karmaşık 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 bir veya TreeItemDataItemöğesinin ListItemyapısı içinde de bulunabilir.

Not

Metin denetimleri UI Otomasyonu ağacının içerik görünümünde görünmeyebilir (bkz. UI Otomasyonu Ağaca 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üzenle denetimi UI Otomasyonu ağacının içerik görünümünde olduğundan, metin öğesinin UI Otomasyonu ağacının o görünümünde olması gerekmez. İç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.

Not

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

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

Bu sınıf, ve adlı iki TextPattern olay dinleyicisini TextSelectionChangedEventTextChangedEventde içerir.
System.Windows.Automation.Text.TextPatternRange sınıfı destekleyen TextPatternbir metin kapsayıcısı içindeki bir metin aralığının gösterimi.

UI Otomasyonu istemcileri kullanılarak TextPatternRangeoluşturulan bir metin aralığının geçerli 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 alınan metin denetimi metin "işaretçisini" mutlak karakter konumlandırması yerine tutturucularla (veya uç noktalarla) yönetiyorsa, metin aralığının yine de uygulanabilirliği olabilir.

İstemciler, üzerinde çalıştıkları metin içeriğinde yapılan değişikliklerin bildirimini dinleyebilir TextChangedEvent .
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 ITextRangeProvider arabirimlerini yerel olarak veya Microsoft UI Otomasyonu proxy'leri aracılığıyla uygulayarak ITextProvider destekleyen TextPattern 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 Denetimde belirli öznitelikler için destek yoksa sağlayıcının tüm metin özniteliklerini desteklemesi gerekmez.

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

Sağlayıcı TextPattern her TextUnit zaman sabitleri Character ve Document destekleyebilecek diğer TextUnit sabitleri desteklemelidir.

Not

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

API Açıklama
ITextProvider Arabirim İstemci uygulamalarında destekleyen TextPattern yöntemleri, özellikleri ve öznitelikleri kullanıma sunar (bkz ITextProvider. ).
ITextRangeProvider Arabirim 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ğe 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 istemciler microsoft UI Otomasyonu yalnızca tam olarak "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 Otomasyonu, herhangi bir UI Otomasyonu istemcisinin güvenilirliğini belirlemek için hiçbir çaba harcamaz ve bu nedenle UI Otomasyonu sağlayıcı 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önetici istrators 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 de dize kesilmesi (TextPattern dizeleri dahil), burada yönetici düzeyinde uygulamalardan alınan dizelerin boyutunu sınırlamak gerekebilir, böylece uygulamayı devre dışı bırakma noktasına bellek ayırmaya zorlanmazlar.

Performans

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, Microsoft UI Otomasyonu veya yöntemleri kullanılarak erişilebilen diğer denetim desenlerinden GetCachedPatternTryGetCachedPattern farklı değildir.

Performansı artırmaya yönelik bir taktik, UI Otomasyonu istemcilerinin kullanarak GetTextorta büyüklükteki 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 denetim deseninin amaçları doğrultusunda, metin ekleme noktası (veya sistem şapka işareti) bozuk bir aralık olarak kabul edilir. Seçili metin yoksa, GetSelection metin ekleme noktasında bozuk bir aralık döndürür ve RangeFromPoint başlangıç uç noktası olarak dejenere 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 null başvuru (Nothing Microsoft Visual Basic .NET'te) döndürür.

Katıştırılmış Nesne
UI Otomasyonu metin modelinde iki tür katıştırılmış nesne vardır. Köprüler veya tablolar gibi metin tabanlı içerik öğelerinin yanı sıra resimler ve düğmeler gibi denetim öğelerinden oluşur. Daha ayrıntılı bilgi için bkz. UI Otomasyonu Kullanarak Katıştırılmış Nesnelere Erişme.

Uç nokta
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 bkz.