Aracılığıyla paylaş


TextPattern ve Katıştırılmış Nesnelere 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 bir metin belgesi veya kapsayıcı içinde yer alan gömülü nesneleri veya alt öğeleri nasıl açığa çıkardığını anlatmaktadır.

UI Otomasyonu'nda katıştırılmış 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 önemli değildir.

Katıştırılmış Nesneler ve UI Otomasyon 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. Aynı model üzerinden erişilebilmeleri için, metin kapsayıcısının çocukları olarak ortaya çıkarılırlar, böylece Kullanıcı Arabirimi Otomasyonu'ndaki diğer denetimlerle uyumlu olurlar.

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 UIA_TextPattern_Embedded_Objects_Overview_Example2 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 TextPattern sınıfı, TextPatternRange 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 sunulur; nesne sınırları yoksayılır. 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 işlem, her bir eklenen nesne için bir GetChildren elde etmek amacıyla AutomationElement çağrılarak ve ardından her öğe için bir metin aralığı elde etmek amacıyla RangeFromChild çağrılarak 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, DocumentRange içinde istenen TextUnit sınırının başına geriye taşınır.

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

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

Taşı ve Kapsayıcı Birime Genişlet ile Aralığı Ayarlama Örnekleri - UIA_TextPattern_MoveAndExpand_Examples Taşı() ve Kapsayıcı Birime Genişlet() işlevleri için metin aralığının nasıl ayarlandığını gösteren örnekler

Yaygın 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 açıklama:

{ = Start

} = End

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

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

Çağrılan yöntem Sonuç
GetText The URL https://www.microsoft.com is embedded in textdizesini 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.
GetChildren Köprü kontrolünü temsil eden bir AutomationElement döndürür.
RangeFromChild burada AutomationElement , önceki GetChildren yöntem tarafından döndürülen nesnedir. https://www.microsoft.com öğesini temsil eden aralığı döndürür.

Örnek 2 - Gömülü metin köprüsünü kısmen kapsayan metin aralığı

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

Çağrılan 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 gömülü bir metin bağlantısı vardır.

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

Çağrılan 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ştuğu için metin aralığını "http" kısmına taşır. Bu durumda, köprü tek bir nesne olarak değerlendirilmez.

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

Resim

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

{Resim Eklenmiş Resim Örneği metne eklenmiş}.

Çağrılan yöntem Sonuç
GetText Dize 'The metne gömülüdür' ifadesini 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. "Katıştırılmış Görüntü Örneği" öğesini temsil eden dejeneratif aralığı 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 Resim Örneği metin içine eklenir.

Çağrılan yöntem Sonuç
GetText "Resim" 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
Gömülü Görüntü Örneği 2 Y
Ekli Görüntü Örneği 3

Z için resim
Z

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

Çağrılan Yöntem Sonuç
GetItem parametreleriyle (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. Ekli Görüntü Örneği görüntüyü kapsayan aralığı döndürür.
GetEnclosingElement önceki RangeFromChild yöntem tarafından döndürülen nesne için. Tablo hücresini temsil eden AutomationElement döndürür; bu durumda, öğe 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 bakınız