Aracılığıyla paylaş


UI Otomasyonu Çağırma Denetim Desenini Uygulama

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, olaylar ve özellikler hakkında bilgiler de dahil olmak üzere uygulama IInvokeProvideryönergeleri ve kuralları tanıtılmaktadır. Ek başvuruların bağlantıları, konunun sonunda listelenir.

Denetim InvokePattern düzeni, etkinleştirildiğinde durumu korumayan, bunun yerine tek, kesin olmayan bir eylem başlatan veya gerçekleştiren denetimleri desteklemek için kullanılır. Durumu koruyan denetimler, örneğin onay kutuları ve radyo düğmeleri, sırasıyla IToggleProvider ve ISelectionItemProvider uygulamak zorundadır. Invoke denetim desenini uygulayan denetim örnekleri için bkz. UI Otomasyonu İstemcileri için Denetim Deseni Eşlemesi.

Uygulama Yönergeleri ve Kuralları

Invoke denetim desenini uygularken aşağıdaki yönergelere ve kurallara dikkat edin:

  • Denetimler, aynı davranışın başka bir denetim deseni sağlayıcısı aracılığıyla gösterilmemesi durumunda, IInvokeProvider uygulanır. Örneğin, bir denetimdeki Invoke yöntemi, Expand veya Collapse yöntemleriyle aynı işlemi gerçekleştiriyorsa, denetim IInvokeProvider'ü uygulamamalıdır.

  • Denetimi çağırma işlemi genellikle enter tuşuna, önceden tanımlanmış bir klavye kısayoluna veya tuş vuruşlarının alternatif bir bileşimine tıklanarak veya çift tıklanarak gerçekleştirilir.

  • InvokedEvent etkinleştirilmiş bir denetim üzerinde oluşturulur (ilişkili eylemi gerçekleştiren bir denetime yanıt olarak). Mümkünse, denetim eylemi tamamladıktan ve engellemeden döndürdükten sonra olay tetiklenmelidir. Aşağıdaki senaryolarda Invoke isteğine hizmet vermeden önce Invoked olayının tetiklenmesi gerekir:

    • Eylem tamamlanana kadar beklemek mümkün veya pratik değildir.

    • Eylem için kullanıcı etkileşimi gerekir.

    • Eylem zaman alır ve çağıran istemcinin önemli bir süre boyunca engellemesine neden olur.

  • Denetimi çağırmanın önemli yan etkileri varsa, bu yan etkiler HelpText özelliği aracılığıyla kullanıma sunulmalıdır. Örneğin, seçimle ilişkilendirilmemiş olsa Invoke da başka Invoke bir denetimin seçilmesine neden olabilir.

  • Üzerine gelme (veya fareyle üzerine gelme) efektleri genellikle çağrılan bir olay oluşturmaz. Ancak, üzerine gelinme durumuna göre bir eylem gerçekleştiren kontroller (görsel bir efekte neden olmak yerine) kontrol desenini InvokePattern desteklemelidir.

Uyarı

Denetim yalnızca fareyle ilgili bir yan etkinin sonucu olarak çağrılabiliyorsa, bu uygulama erişilebilirlik sorunu olarak kabul edilir.

  • Denetimi çağırmak, öğe seçmekten farklıdır. Bununla birlikte, denetime bağlı olarak, onu çağırmak öğenin yan etki olarak seçilmesine neden olabilir. Örneğin, Belgelerim klasöründe bir Microsoft Word belge listesi öğesini çağırmak hem öğeyi seçer hem de belgeyi açar.

  • Bir öğe çağrıldıktan hemen sonra UI Otomasyonu ağacından kaybolabilir. Sonuç olarak, olay geri çağırması tarafından sağlanan öğesinden bilgi istenmesi başarısız olabilir. Önbelleğe alınmış bilgileri önceden getirmek önerilen geçici çözümdür.

  • Denetimler birden çok denetim deseni uygulayabilir. Örneğin, Microsoft Excel araç çubuğundaki Dolgu Rengi denetimi hem hem InvokePattern de ExpandCollapsePattern denetim desenlerini uygular. ExpandCollapsePattern menüyü gösterir ve InvokePattern etkin seçimi seçilen renkle doldurur.

IInvokeProvider için Gerekli Üyeler

uygulamak IInvokeProvideriçin aşağıdaki özellikler ve yöntemler gereklidir.

Gerekli üyeler Üye türü Notlar
Invoke yöntem Invoke zaman uyumsuz bir çağrıdır ve engelleme olmadan hemen döndürülmelidir.

Bu davranış, çağrıldığında doğrudan veya dolaylı olarak kalıcı bir iletişim kutusu başlatan denetimler için özellikle kritik önem taşır. Olayı başlatan tüm UI Automation istemcisi, kalıcı iletişim kutusu kapatılana kadar engellenmiş olarak kalır.

Özel durumlar

Sağlayıcılar, aşağıdaki özel durumları fırlatmalıdır.

Özel Durum Türü Koşul
ElementNotEnabledException Denetim etkin değilse.

Ayrıca bakınız