Aracılığıyla paylaş


TextPattern ve Katıştırılmış Nesnelere 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'ın bir metin belgesi veya kapsayıcı içindeki katıştırılmış nesneleri veya alt öğeleri nasıl kullanıma sunma şeklini açıklar.

UI Otomasyonu eklenmiş nesne, metinsel olmayan sınırları olan herhangi bir öğedir; örneğin, microsoft Excel elektronik tablosu veya Microsoft Windows Media dosyası gibi bir resim, köprü, tablo veya belge türü. Bu, bir öğenin bir uygulamada oluşturulduğu ve başka bir uygulamada eklendiği veya bağlandığı standart tanımdan farklıdır. Nesnenin özgün uygulaması içinde düzenlenip düzenlenemeyeceği, UI Otomasyonu bağlamında ilgisizdir.

Katıştırılmış Nesneler ve UI Otomasyonu Ağacı

Katıştırılmış nesneler, UI Otomasyonu ağacının denetim görünümünde tek tek öğeler olarak kabul edilir. Metin kapsayıcısının alt öğeleri olarak kullanıma sunulurlar, böylece bunlara UI Otomasyonu'deki diğer denetimlerle aynı model üzerinden erişilebilir.

Metin Kapsayıcısında Görüntü bulunan Ekli Tablo Tablo, Görüntü ve Köprü Eklenmiş Nesneleri olan Metin Kapsayıcısı Örneği

Önceki örnek için içerik görünümü Önceki Metin Kapsayıcısının Bir Bölümü için İçerik Görünümü Örneği

TextPattern ve TextPatternRange Kullanarak Eklenmiş Nesneleri Kullanıma Sunma

Birlikte kullanılan denetim deseni sınıfı ve TextPatternRange sınıfı, TextPattern ekli nesnelerin gezintisini ve sorgusunu kolaylaştıran yöntemleri ve özellikleri kullanıma sunar.

Metin kapsayıcısının metin içeriği (veya iç metin), köprü veya tablo hücresi gibi eklenmiş bir nesne, hem denetim görünümünde hem de UI Otomasyonu ağacının içerik görünümünde tek, sürekli metin akışı olarak gösterilir; nesne sınırları yoksayılır. bir UI Otomasyonu istemcisi metni bir şekilde incelemek, yorumlamak veya çözümlemek amacıyla almaktaysa, metin aralığı metin içeriğine veya diğer eklenmiş nesnelere sahip bir tablo gibi özel durumlar için denetlenmelidir. Bu, eklenen her nesne için bir AutomationElement almak üzere çağrılarak GetChildren ve ardından her öğe için bir metin aralığı elde etmek üzere çağrılarak RangeFromChild gerçekleştirilebilir. Tüm metin içeriği alınana kadar bu işlem özyinelemeli olarak yapılır.

Eklenmiş nesneler tarafından yayılan metin aralıkları. Eklenmiş nesneler ve bunların aralık aralıkları ile metin akışı örneği

Bir metin aralığının içeriğinin çapraz geçişi gerektiğinde, yöntemin başarıyla yürütülmesi için Move arka planda bir dizi adım uygulanır.

  1. Metin aralığı normalleştirilir; yani metin aralığı uç noktadaki bozuk bir aralığa Start daraltılır ve bu da uç noktayı gereksiz hale getirir End . Bu adım, metin aralığının sınırları yaydığı TextUnit durumlarda belirsizliği kaldırmak için gereklidir: örneğin, {The URL https://www.microsoft.com is embedded in text "{" ve "}" metin aralığı uç noktalarıdır.

  2. Sonuçta elde edilen aralık, istenen TextUnit sınırın başına geri DocumentRange taşınır.

  3. Aralık, istenen sınır sayısına TextUnit göre içinde DocumentRange ileri veya geri taşınır.

  4. Ardından, uç nokta istenen TextUnit bir sınıra taşınarak aralık, dejenere aralık durumundan End genişletilir.

Move &ampToEnclosingUnit'e göre aralık ayarlamaları Move() ve ExpandToEnclosingUnit() için metin aralığının nasıl ayarlandığına ilişkin örnekler

Genel Senaryolar

Aşağıdaki bölümlerde, katıştırılmış nesneler içeren en yaygın senaryoların örnekleri verilmiştir.

Gösterilen örnekler için gösterge:

{ = Start

} = End

Örnek 1 - Eklenmiş metin köprüsü içeren metin aralığı

{The URL https://www.microsoft.com is embedded in text}.

Adlı yöntem Sonuç
GetText dizesini The URL https://www.microsoft.com is embedded in textdöndürür.
GetEnclosingElement Metin aralığını kapsayan en AutomationElement içteki değeri döndürür; bu örnekte metin AutomationElement sağlayıcısının kendisini temsil eden değeridir.
GetChildren Köprü denetimini temsil eden bir AutomationElement döndürür.
RangeFromChild burada AutomationElement , önceki GetChildren yöntem tarafından döndürülen nesnedir. öğesini temsil https://www.microsoft.comeden aralığı döndürür.

Örnek 2 - Eklenmiş metin köprüsüne kısmen yayılan metin aralığı

URL https://{[www]} metin içine eklenir.

Adlı yöntem Sonuç
GetText "www" dizesini döndürür.
GetEnclosingElement Metin aralığını kapsayan en AutomationElement içtekini döndürür; bu örnekte köprü denetimi.
GetChildren Metin aralığı URL dizesinin tamamına yayılmadığından döndürür null .

Örnek 3 - Bir metin kapsayıcısının içeriğini kısmen kapsayan bir metin aralığı. Metin kapsayıcısında, metin aralığının parçası olmayan eklenmiş bir metin köprüsü vardır.

{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.

Adlı yöntem Sonuç
GetText "URL" dizesini döndürür.
GetEnclosingElement Metin aralığını kapsayan en AutomationElement içteki değeri döndürür; bu örnekte metin AutomationElement sağlayıcısının kendisini temsil eden değeridir.
Move parametresiyle (TextUnit.Word, 1). Köprü metni tek tek sözcüklerden oluşabileceğinden metin aralığı aralığını "http" olarak taşır. Bu durumda, köprü tek bir nesne olarak değerlendirilmez.

{[http]} URL'si metne eklenmiş.

Görsel

Örnek 1 - Eklenmiş görüntü içeren metin aralığı

{Resim Ekli Görüntü Örneği text} içine eklenir.

Adlı yöntem Sonuç
GetText "Metni eklenmiş" dizesini döndürür. Resimle ilişkilendirilmiş herhangi bir ALT metninin metin akışına eklenmesi beklenemez.
GetEnclosingElement Metin aralığını kapsayan en AutomationElement içteki değeri döndürür; bu örnekte metin AutomationElement sağlayıcısının kendisini temsil eden değeridir.
GetChildren Görüntü denetimini temsil eden bir AutomationElement döndürür.
RangeFromChild burada AutomationElement , önceki GetChildren yöntem tarafından döndürülen nesnedir. "Ekli Görüntü Örneği" öğesini temsil eden degenerate aralığını döndürür.

Örnek 2 - Bir metin kapsayıcısının içeriğini kısmen kapsayan bir metin aralığı. Metin kapsayıcısı, metin aralığının parçası olmayan ekli bir görüntüye sahiptir.

{Resim} Ekli Görüntü Örneği metin içine eklenir.

Adlı yöntem Sonuç
GetText "Görüntü" dizesini döndürür.
GetEnclosingElement Metin aralığını kapsayan en AutomationElement içteki değeri döndürür; bu örnekte metin AutomationElement sağlayıcısının kendisini temsil eden değeridir.
Move parametresiyle (TextUnit.Word, 1). Metin aralığı aralığını "is" olarak taşır. Yalnızca metin tabanlı eklenmiş nesneler metin akışının bir parçası olarak kabul edildiğinden, bu örnekteki görüntü Taşıma veya dönüş değerini (bu örnekte 1) etkilemez.

Tablo

Örnekler için kullanılan tablo

Resimli Hücre Metin içeren hücre
Ekli Görüntü Örneği X
Ekli Görüntü Örneği 2 Y
Ekli Görüntü Örneği 3

Z resmi
Z

Örnek 1 - Bir hücrenin içeriğinden metin kapsayıcısını alma.

Çağrılan Yöntem Sonuç
GetItem parametrelerle (0,0) AutomationElement Tablo hücresinin içeriğini temsil eden öğesini döndürür; bu örnekte öğe bir metin denetimidir.
RangeFromChild burada AutomationElement , önceki GetItem yöntem tarafından döndürülen nesnedir. Resmi Ekli Görüntü Örneğikapsayan aralığı döndürür.
GetEnclosingElement önceki RangeFromChild yöntem tarafından döndürülen nesne için. Tablo hücresini AutomationElement temsil eden hücreyi döndürür; bu durumda, öğesi TableItemPattern'ı destekleyen bir metin denetimidir.
GetEnclosingElement önceki GetEnclosingElement yöntem tarafından döndürülen nesne için. AutomationElement Tabloyu temsil edeni döndürür.
GetEnclosingElement önceki GetEnclosingElement yöntem tarafından döndürülen nesne için. Metin sağlayıcısının AutomationElement kendisini temsil eden öğesini döndürür.

Örnek 2 - Hücrenin metin içeriğini alma.

Çağrılan Yöntem Sonuç
GetItem (1,1) parametreleriyle. AutomationElement Tablo hücresinin içeriğini temsil eden öğesini döndürür; bu örnekte öğe bir metin denetimidir.
RangeFromChild burada AutomationElement , önceki GetItem yöntem tarafından döndürülen nesnedir. "Y" döndürür.

Ayrıca bkz.