Aracılığıyla paylaş


İstemciler İçin UI Otomasyon Özellikleri

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ış, UI Otomasyonu istemci uygulamalarında kullanıma sunulan UI Otomasyonu özellikleri tanıtır.

Nesnelerdeki AutomationElement özellikler genellikle denetimler olan kullanıcı arabirimi (UI) öğeleri hakkında bilgi içerir. bir öğesinin AutomationElement özellikleri geneldir; yani bir denetim türüne özgü değildir. Bu özelliklerin çoğu yapıda AutomationElement.AutomationElementInformation kullanıma sunulur.

Denetim desenlerinin özellikleri de vardır. Denetim desenlerinin özellikleri desene özeldir. Örneğin, ScrollPattern bir istemci uygulamasının bir pencerenin dikey mi yoksa yatay olarak kaydırılabilir mi olduğunu ve geçerli görünüm boyutlarının ve kaydırma konumlarının ne olduğunu keşfetmesini sağlayan özelliklere sahiptir. Denetim desenleri tüm özelliklerini bir yapı aracılığıyla kullanıma sunar; örneğin, ScrollPattern.ScrollPatternInformation.

UI Otomasyonu özellikleri salt okunur. Denetimin özelliklerini ayarlamak için uygun denetim deseninin yöntemlerini kullanmanız gerekir. Örneğin, kaydırma penceresinin konum değerlerini değiştirmek için kullanın Scroll .

Performansı geliştirmek için, nesneler alındığında denetimlerin ve denetim desenlerinin özellik değerleri önbelleğe AutomationElement alınabilir. Daha fazla bilgi için bkz. UI Otomasyonu İstemcileri'nde Önbelleğe Alma.

Özellik Kimlikleri

Özellik tanımlayıcıları (kimlikler), nesnelerde AutomationProperty kapsüllenmiş benzersiz, sabit değerlerdir. UI Otomasyonu istemci uygulamaları bu kimlikleri sınıfından AutomationElement veya gibi ScrollPatternuygun denetim desen sınıfından alır. UI Otomasyonu sağlayıcılar bunları AutomationElementIdentifiers gibi ScrollPatternIdentifiersdenetim deseni tanımlayıcı sınıflarından birinden veya sınıflarından alır.

Id sayısalıAutomationProperty, sağlayıcılar tarafından yönteminde IRawElementProviderSimple.GetPropertyValue sorgulanan özellikleri tanımlamak için kullanılır. Genel olarak, istemci uygulamalarının dosyasını Idincelemesi gerekmez. ProgrammaticName yalnızca hata ayıklama ve tanılama amacıyla kullanılır.

Özellik Koşulları

Özellik kimlikleri, nesneleri bulmak AutomationElement için kullanılan nesneleri oluştururken PropertyCondition kullanılır. Örneğin, belirli bir AutomationElement ada veya etkinleştirilmiş tüm denetimlere sahip bir bulmak isteyebilirsiniz. Her PropertyCondition bir AutomationProperty tanımlayıcıyı ve özelliğin eşleşmesi gereken değeri belirtir.

Daha fazla bilgi için aşağıdaki başvuru konularına bakın:

Özellikleri Alma

Denetim deseni sınıfının bazı özellikleri AutomationElement ve tüm özellikleri, veya denetim deseni nesnesinin Current veya Cached özelliğinin AutomationElement iç içe özellikleri olarak sunulur.

Ayrıca, veya yapısında Cached bulunmayan bir özellik de dahil olmak üzere herhangi AutomationElement bir veya Current denetim deseni özelliği aşağıdaki yöntemlerden biri kullanılarak alınabilir:

Bu yöntemler, biraz daha iyi performans sunmanın yanı sıra tüm özelliklere erişim sunar.

Aşağıdaki kod örneği, üzerinde AutomationElementbir özelliği almanın iki yolunu gösterir.

// elementList is an AutomationElement.

// The following two calls are equivalent.
string name = elementList.Current.Name;
name = elementList.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;
' elementList is an AutomationElement.
' The following two calls are equivalent.
Dim name As String = elementList.Current.Name
name = CStr(elementList.GetCurrentPropertyValue(AutomationElement.NameProperty))

tarafından AutomationElementdesteklenen denetim desenlerinin özelliklerini almak için denetim deseni nesnesini almanız gerekmez. Desen özelliği tanımlayıcılarından birini yöntemine geçirmeniz yeterlidir.

Aşağıdaki kod örneği, denetim deseninde bir özelliği almanın iki yolunu gösterir.

// elementList is an AutomationElement representing a list box.
// Error-checking is omitted. Assume that elementList is known to support SelectionPattern.

SelectionPattern selectPattern =
    elementList.GetCurrentPattern(SelectionPattern.Pattern) as SelectionPattern;
bool isMultipleSelect = selectPattern.Current.CanSelectMultiple;

// The following call is equivalent to the one above.
isMultipleSelect = (bool)
    elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty);
' elementList is an AutomationElement representing a list box.
' Error-checking is omitted. Assume that elementList is known to support SelectionPattern.
Dim selectPattern As SelectionPattern = _
    DirectCast(elementList.GetCurrentPattern(SelectionPattern.Pattern), SelectionPattern)
Dim isMultipleSelect As Boolean = selectPattern.Current.CanSelectMultiple

' The following call is equivalent to the one above.
isMultipleSelect = CBool(elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty))

Get Yöntemleri bir Objectdöndürür. Uygulama, değeri kullanmadan önce döndürülen nesneyi uygun türe atamalıdır.

Varsayılan Özellik Değerleri

bir UI Otomasyonu sağlayıcısı bir özellik uygulamazsa, UI Otomasyonu sistemi varsayılan bir değer sağlar. Örneğin, bir denetimin sağlayıcısı tarafından HelpTextPropertytanımlanan özelliği desteklemiyorsa UI Otomasyonu boş bir dize döndürür. Benzer şekilde, sağlayıcı tarafından IsDockPatternAvailablePropertytanımlanan özelliği desteklemiyorsa UI Otomasyonu döndürürfalse.

ve AutomationElement.GetCurrentPropertyValue yöntemi aşırı yüklemelerini kullanarak AutomationElement.GetCachedPropertyValue bu davranışı değiştirebilirsiniz. İkinci parametre olarak belirttiğinizdetrue, UI Otomasyonu varsayılan bir değer döndürmez, bunun yerine özel değerini NotSupporteddöndürür.

Aşağıdaki örnek kod bir öğeden özellik almayı dener ve özellik desteklenmiyorsa, bunun yerine uygulama tanımlı bir değer kullanılır.

// elementList is an AutomationElement.
object help = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, true);
if (help == AutomationElement.NotSupported)
{
    help = "No help available";
}
string helpText = (string)help;
' elementList is an AutomationElement.
Dim help As Object = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, True)
If help Is AutomationElement.NotSupported Then
    help = "No help available"
End If
Dim helpText As String = CStr(help)

Bir öğe tarafından desteklenen özellikleri bulmak için kullanın GetSupportedProperties. Bu, bir tanımlayıcı dizisi AutomationProperty döndürür.

Özellik Değiştiren Olaylar

Bir veya denetim düzenindeki bir AutomationElement özellik değeri değiştiğinde, bir olay oluşturulur. Bir uygulama, AddAutomationPropertyChangedEventHandlerçağırarak bu tür olaylara abone olabilir ve ilgilendiğiniz AutomationProperty özellikleri belirtmek için son parametre olarak bir tanımlayıcı dizisi sağlayabilir.

AutomationPropertyChangedEventHandleriçinde, olay bağımsız değişkenlerinin üyesini denetleyerek Property değiştirilen özelliği tanımlayabilirsiniz. Bağımsız değişkenler, değiştirilen UI Otomasyonu özelliğinin eski ve yeni değerlerini de içerir. Bu değerler türündedir Object ve kullanılmadan önce doğru türe geçirilmelidir.

Ek AutomationElement Özellikleri

ve Cached özellik yapılarına Current ek olarak, AutomationElement basit özellik erişimcileri aracılığıyla alınan aşağıdaki özelliklere sahiptir.

Özellik Açıklama
CachedChildren Önbellekte bulunan alt AutomationElement nesneler koleksiyonu.
CachedParent AutomationElement Önbellekte bulunan bir üst nesne.
FocusedElement (Statik özellik) AutomationElement Giriş odağını içeren.
RootElement (Statik özellik) kökü AutomationElement.

Ayrıca bkz.