Denetim Deseni Çağırma
IInvokeProvideruygulamak için yöntemlerle ilgili bilgiler de dahil olmak üzere yönergeleri ve kuralları açıklar. Invoke denetim deseni, etkinleştirildiğinde durumu korumayan ancak 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 bunun yerine sırasıyla IToggleProvider ve ISelectionProvider uygulaması gerekir. Bu denetim desenini uygulayan denetim örnekleri için bkz. Denetim Türleri ve Desteklenen Denetim Desenleri.
Bu konu aşağıdaki bölümleri içerir.
- Uygulama Yönergeleri ve Kuralları
- IInvokeProvideriçin Gerekli Üyeleri
- İlgili konular
Uygulama Yönergeleri ve Kuralları
Invoke denetim desenini uygularken aşağıdaki yönergelere ve kurallara dikkat edin:
Denetimler, aynı davranış başka bir denetim düzeni sağlayıcısı aracılığıyla gösterilmezse IInvokeProvider uygular. Örneğin, IUIAutomationInvokePattern::Invoke yöntemi, IUIAutomationExpandCollapsePattern::Expand veya Daralt yöntemiyle aynı eylemi gerçekleştiriyorsa, denetim IInvokeProvideruygulamamalı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.
Invoked olayı (UIA_Invoke_InvokedEventId) olayı, etkinleştirilmiş bir denetimde 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. Invoked olayı (UIA_Invoke_InvokedEventId), aşağıdaki senaryolarda Invoke isteğine hizmet vermeden önce tetiklenmelidir:
- 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 gösterilmelidir. Örneğin, IUIAutomationInvokePattern::Invoke seçimle ilişkilendirilmemiş olsa da Invoke başka bir denetimin seçilmesine neden olabilir.
Üzerine gelme (veya fareyle üzerine gelme) efektleri genellikle Çağrılan olayı oluşturmaz. Ancak, vurgulama durumuna göre bir eylem gerçekleştiren denetimler (görsel efekte neden olmak yerine) Invoke denetim desenini 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 Microsoft 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 Invoke hem de ExpandCollapse denetim desenlerini uygular. ExpandCollapse denetim düzeni menüyü kullanıma sunar ve Invoke denetim deseni etkin seçimi seçilen renkle doldurur.
IInvokeProvider için Gerekli Üyeler
IInvokeProvider arabirimini uygulamak için aşağıdaki yöntem gereklidir.
Gerekli üyeler | Üye türü | Notlar |
---|---|---|
Çağırma | 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. |
Bu denetim deseninde ilişkili özellik veya olay yok.