Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.
W tym temacie przedstawiono wytyczne i konwencje implementacji IInvokeProvider, w tym informacje o zdarzeniach i właściwościach. Linki do dodatkowych odwołań znajdują się na końcu tematu.
Wzorzec InvokePattern kontrolki jest używany do obsługi kontrolek, które nie obsługują stanu po aktywowaniu, ale raczej inicjują lub wykonują pojedynczą, jednoznaczną akcję. Kontrolki, które utrzymują stan, takie jak pola wyboru i przyciski radiowe, muszą zamiast tego implementować IToggleProvider i ISelectionItemProvider odpowiednio. Przykłady kontrolek implementujących wzorzec kontrolki Invoke można znaleźć w temacie Mapowanie wzorców kontrolek dla klientów automatyzacji interfejsu użytkownika.
Wytyczne i konwencje implementacji
Podczas implementowania wzorca kontrolki Wywołaj należy pamiętać o następujących wytycznych i konwencjach:
Kontrolki implementują IInvokeProvider, jeśli to samo zachowanie nie jest udostępniane za pośrednictwem innego dostawcy wzorca sterowania. Jeśli na przykład metoda Invoke w kontrolce wykonuje tę samą akcję co metoda Expand lub metoda Collapse, kontrolka nie powinna implementować metody IInvokeProvider.
Wywoływanie kontrolki jest zwykle wykonywane przez kliknięcie lub dwukrotne kliknięcie lub naciśnięcie ENTER, wstępnie zdefiniowany skrót klawiaturowy lub inną kombinację naciśnięć.
InvokedEvent jest wywoływana w kontroli, która została aktywowana (jako odpowiedź na kontrolę wykonującą skojarzoną akcję). Jeśli to możliwe, zdarzenie powinno zostać podniesione po zakończeniu działania przez kontrolkę i zwróconej bez blokowania. Wywołane zdarzenie powinno zostać zgłoszone przed obsługą żądania Invoke w następujących scenariuszach:
Nie jest możliwe ani praktyczne oczekiwanie na ukończenie akcji.
Akcja wymaga interakcji użytkownika.
Akcja jest czasochłonna i spowoduje zablokowanie klienta wywołującego przez znaczną ilość czasu.
Jeśli wywołanie kontroli ma znaczące skutki uboczne, te skutki uboczne powinny być ujawnione przez właściwość HelpText. Na przykład, mimo że Invoke nie jest skojarzony z wyborem, Invoke może spowodować wybranie innej kontrolki.
Efekty najechania kursorem (lub przesunięcia myszką) zwykle nie stanowią wywołanego zdarzenia. Jednak kontrolki wykonujące akcję (w przeciwieństwie do wywołania efektu wizualnego) na podstawie stanu najechania kursorem powinny obsługiwać wzorzec sterowania InvokePattern.
Uwaga / Notatka
Ta implementacja jest uważana za problem z ułatwieniami dostępu, jeśli kontrolka może być wywoływana tylko w wyniku efektu bocznego związanego z myszą.
Wywoływanie kontrolki różni się od wybierania elementu. Jednak w zależności od kontrolki wywołanie go może spowodować, że element zostanie wybrany jako efekt uboczny. Na przykład wywołanie elementu listy dokumentów programu Microsoft Word w folderze Moje dokumenty powoduje wybranie elementu i otwarcie dokumentu.
Element może zniknąć z drzewa automatyzacji interfejsu użytkownika natychmiast po wywołaniu. Żądanie informacji z elementu dostarczonego przez wywołanie zwrotne zdarzeń może zakończyć się niepowodzeniem w wyniku. Zalecane jest wstępne pobieranie buforowanych informacji.
Kontrolki mogą implementować wiele wzorców kontrolek. Na przykład kontrolka Kolor wypełnienia na pasku narzędzi programu Microsoft Excel implementuje zarówno wzorce kontrolek InvokePattern, jak i ExpandCollapsePattern. ExpandCollapsePattern Uwidacznia menu i InvokePattern wypełnia aktywny wybór wybranym kolorem.
Wymagani członkowie dla IInvokeProvider
Następujące właściwości i metody są wymagane do zaimplementowania IInvokeProvider.
| Wymagani członkowie | Typ członkostwa | Notatki |
|---|---|---|
| Invoke | metoda |
Invoke jest wywołaniem asynchronicznym i musi zostać zwrócone natychmiast bez blokowania. Takie zachowanie jest szczególnie krytyczne w przypadku kontrolek, które bezpośrednio lub pośrednio uruchamiają modalne okno dialogowe po wywołaniu. Każdy klient automatyzacji interfejsu użytkownika, który zainicjował zdarzenie, pozostanie zablokowany do momentu zamknięcia modalnego okna dialogowego. |
Wyjątki
Dostawcy muszą zgłaszać następujące wyjątki.
| Typ wyjątku | Warunek |
|---|---|
| ElementNotEnabledException | Jeśli kontrolka nie jest włączona. |
Zobacz także
- Omówienie wzorców automatyzacji kontrolek interfejsu użytkownika
- obsługują wzorce kontrolek w dostawcy automatyzacji interfejsu użytkownika
- Wzorce kontrolek automatyzacji interfejsu użytkownika dla klientów
- Wywoływanie kontrolki przy użyciu automatyzacji interfejsu użytkownika
- Omówienie drzewa automatyzacji interfejsu użytkownika
- Użyj buforowania w automatyzacji interfejsu użytkownika