Aracılığıyla paylaş


UI Otomasyon Çağırma Denetim Düzenini Uygulama

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 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. Onay kutuları ve radyo düğmeleri gibi durumu koruyan denetimlerin sırasıyla ve ISelectionItemProvider uygulaması IToggleProvider gerekir. 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 uygulanır IInvokeProvider . Örneğin, bir denetimdeki Invoke yöntem veya Collapse yöntemiyle Expand aynı eylemi gerçekleştiriyorsa, denetimi uygulamamalıdırIInvokeProvider.

  • 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 özelliği aracılığıyla HelpText 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 Bir Invoked olayı oluşturmaz. Ancak, vurgulama durumuna göre bir eylem gerçekleştiren denetimler (görsel efekte neden olmak yerine) denetim desenini InvokePattern desteklemelidir.

Not

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 ExpandCollapsePattern de InvokePattern 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öntemi 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 Otomasyonu istemcisi, kalıcı iletişim kutusu kapatılana kadar engellenmiş olarak kalır.

Özel durumlar

Sağlayıcıların aşağıdaki özel durumları oluşturması gerekir.

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

Ayrıca bkz.