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.
Tablo, Görüntü ve Köprü Eklenmiş Nesneleri olan Metin Kapsayıcısı Örneği
Ö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 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.
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.Sonuçta elde edilen aralık, istenen TextUnit sınırın başına geri DocumentRange taşınır.
Aralık, istenen sınır sayısına TextUnit göre içinde DocumentRange ileri veya geri taşınır.
Ardından, uç nokta istenen TextUnit bir sınıra taşınarak aralık, dejenere aralık durumundan End genişletilir.
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
Köprü
Ö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 text 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ü 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.com eden 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 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. | "" öğ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} 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 |
---|---|
X | |
Y | |
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 kapsayan 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. |