Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ış, Kullanıcı Arayüzü Otomasyonu istemci uygulamalarına sunulduğu şekliyle Kullanıcı Arayüzü Otomasyonu özelliklerini tanıtır.
Nesnelerdeki AutomationElement özellikler genellikle denetimler olan kullanıcı arabirimi (UI) öğeleri hakkında bilgi içerir. Bir AutomationElement’in özellikleri geneldir; yani, belirli bir denetim türüne ait değildir. Bu özelliklerin çoğu AutomationElement.AutomationElementInformation yapısında görünür hale getirilir.
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 özellik değerleri ve denetim desenleri önbelleğe alınabilir. Daha fazla bilgi için bkz . UI Otomasyonu İstemcilerinde Ö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 AutomationElement sınıfından veya ScrollPattern gibi uygun denetim desen sınıfından alır. UI Otomasyonu sağlayıcıları bunları AutomationElementIdentifiers veya ScrollPatternIdentifiers gibi kontrol deseni tanımlayıcı sınıflarından biri aracılığıyla temin eder.
Bir Id numarası, AutomationProperty, sağlayıcılar tarafından IRawElementProviderSimple.GetPropertyValue yöntemindeki 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.
Mülk Koşulları
Özellik kimlikleri, PropertyCondition nesnelerini bulmak için kullanılan AutomationElement nesnelerini oluşturmak üzere kullanılır. Örneğin, belirli bir adı olan bir AutomationElement veya etkinleştirilmiş tüm denetimleri 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
AutomationElement özelliğinin bazı ve denetim deseni sınıfının tüm özellikleri, denetim deseni nesnesinin Current veya Cached özelliğinin AutomationElement iç içe geçmiş özellikleri olarak sunulur.
Ayrıca, AutomationElement yapısında veya Cached yapısında bulunmayan bir özellik de dahil olmak üzere herhangi bir Current veya 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 Object döndürür. Uygulama, değeri kullanmadan önce döndürülen nesneyi uygun türe atamalıdır.
Varsayılan Özellik Değerleri
UI Otomasyonu sağlayıcısı bir özellik uygulamazsa, UI Otomasyonu sistemi varsayılan bir değer sağlayabilecektir. Ö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ür false.
Bu davranışı, AutomationElement.GetCachedPropertyValue ve AutomationElement.GetCurrentPropertyValue yöntemi aşırı yüklemelerini kullanarak değiştirebilirsiniz. İkinci parametre olarak belirttiğinizde true , 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
AutomationElement veya denetim düzenindeki bir özellik değeri değiştiğinde bir olay tetiklenir. 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.
AutomationPropertyChangedEventHandler içinde, Property olay bağımsız değişkenlerinin üyesini denetleyerek 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 Otomasyon Öğesi Özellikleri
Current ve Cached özellik yapılarına ek olarak, AutomationElement, basit özellik erişimcileri aracılığıyla alınabilen aşağıdaki özelliklere sahiptir.
| Mülkiyet | Açıklama |
|---|---|
| CachedChildren | Önbellekteki çocuk AutomationElement nesnelerin koleksiyonu. |
| CachedParent | AutomationElement Önbellekte bulunan bir üst nesne. |
| FocusedElement | (Statik özellik) AutomationElement Giriş odağına sahip olan. |
| RootElement | (Statik özellik) kök AutomationElement. |