Aracılığıyla paylaş


İstemciler için UI Otomasyonu Olayları

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 konu başlığında, Microsoft UI Automation olaylarının UI Automation istemcileri tarafından nasıl kullanıldığı açıklanmaktadır.

UI Otomasyonu, istemcilerin ilgilendiği olaylara abone olmasını sağlar. Bu özellik herhangi bir bilgi, yapı veya durumun değişip değişmediğini görmek için sistemdeki tüm kullanıcı arabirimi öğelerini sürekli yoklama gereksinimini ortadan kaldırarak performansı artırır.

Verimlilik, yalnızca tanımlı bir kapsamdaki olayları dinleyebilme özelliğiyle de iyileştirilir. Örneğin, bir istemci ağaçtaki tüm UI Otomasyonu öğelerinde veya yalnızca bir öğede ve alt öğelerinde odak değişikliği olaylarını dinleyebilir.

Uyarı

Tüm olası olayların bir Microsoft UI Otomasyonu sağlayıcısı tarafından tetiklendiğini varsaymayın. Örneğin, tüm özellik değişiklikleri olayların Windows Forms ve Win32 denetimleri için standart ara sunucu sağlayıcıları tarafından tetiklenmelerine neden olmaz.

UI Otomasyonu olaylarının daha geniş bir görünümü için bkz. UI Otomasyonu Olaylarına Genel Bakış.

Olaylara Abone Olma

İstemci uygulamaları, aşağıdaki yöntemlerden birini kullanarak bir olay işleyicisi kaydederek belirli bir türdeki olaylara abone olur.

Yöntem Olay Türü Olay Argümanları Türü Temsilci Türü
AddAutomationFocusChangedEventHandler Odak değişikliği AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Özellik değişikliği AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Yapı değişikliği StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Tarafından bir AutomationEvent ile tanımlanan diğer tüm olaylar AutomationEventArgs veya WindowClosedEventArgs AutomationEventHandler

yöntemini çağırmadan önce, olayı işlemek için bir temsilci yöntemi oluşturmanız gerekir. İsterseniz, farklı olay türlerini tek bir yöntemde işleyebilir ve bu yöntemi tablodaki yöntemlerden birine birden çok çağrıda geçirebilirsiniz. Örneğin, tek bir AutomationEventHandler, EventId'e göre çeşitli olayları farklı şekilde işleyecek şekilde ayarlanabilir.

Uyarı

Pencere kapalı olaylarını işlemek için, olay işleyicisine geçirilen bağımsız değişken türünü WindowClosedEventArgs olarak dönüştürün. Pencerenin Microsoft UI Otomasyonu öğesi artık geçerli olmadığından, bilgileri almak için parametresini sender kullanamazsınız; bunun yerine kullanın GetRuntimeId .

Dikkat

Uygulamanız kendi kullanıcı arabiriminden olaylar alıyorsa, olaylara abone olmak veya aboneliği kaldırmak için uygulamanızın kullanıcı arabirimi iş parçacığını kullanmayın. Bunu yapmak öngörülemeyen davranışlara yol açabilir. Daha fazla bilgi için bkz. UI Otomasyonu İletişim Dizilimi Sorunları.

Kapatma sırasında veya UI Otomasyonu olayları artık uygulamayı ilgilendirmediğinde, UI Otomasyonu istemcileri aşağıdaki yöntemlerden birini çağırmalıdır.

Yöntem Açıklama
RemoveAutomationEventHandler kullanılarak AddAutomationEventHandlerkaydedilen bir olay işleyicinin kaydını kaldırır.
RemoveAutomationFocusChangedEventHandler kullanılarak AddAutomationFocusChangedEventHandlerkaydedilen bir olay işleyicinin kaydını kaldırır.
RemoveAutomationPropertyChangedEventHandler kullanılarak AddAutomationPropertyChangedEventHandlerkaydedilen bir olay işleyicinin kaydını kaldırır.
RemoveAllEventHandlers Tüm kayıtlı olay işleyicilerinin kaydını kaldırır.

Örneğin kod, bkz. UI Otomasyonu Olaylarına Abone Olma.

Ayrıca bakınız