Projektowanie niestandardowych właściwości, zdarzeń i wzorców kontrolek
Projekt niestandardowej właściwości, zdarzenia lub wzorca kontrolki powinien być przydatny w wielu różnych implementacjach kontrolek. Należy unikać projektów specyficznych dla kontroli lub aplikacji, które są przydatne tylko w ograniczonych scenariuszach. Projekt powinien być zgodny z przykładem istniejących właściwości, zdarzeń i wzorców sterowania automatyzacji interfejsu użytkownika firmy Microsoft, które zostały dokładnie określone, aby spełnić potrzeby szerokiej gamy aplikacji ułatwień dostępu i testów automatycznych.
Implementacja specyfikacji niestandardowej właściwości, zdarzenia lub wzorca kontroli obejmuje współpracę i umowę stron zarówno po stronie klienta, jak i dostawcy, i wymaga, aby obie strony konsekwentnie wdrażały specyfikację. Firmy są zachęcane do współpracy z organizacjami branżowymi, takimi jak Accessibility Interoperability Alliance (AIA) do projektowania i publikowania specyfikacji niestandardowej właściwości, zdarzenia lub wzorca sterowania. W ten sposób można osiągnąć konsensus i zapewnić współdziałanie z najszerszą gamą zastosowań.
Ten temat zawiera następujące sekcje:
- kiedy używać właściwości niestandardowych i zdarzeń
- projektowanie właściwości niestandardowych
- projektowanie zdarzeń niestandardowych
- projektowanie niestandardowych wzorców kontrolek
- niestandardowe typy kontrolek
- Tematy pokrewne
Kiedy należy używać niestandardowych właściwości i zdarzeń
Przed utworzeniem niestandardowej właściwości, zdarzenia lub wzorca kontrolki upewnij się, że automatyzacja interfejsu użytkownika nie udostępnia istniejącego rozwiązania. Na przykład utworzenie niestandardowego wzorca kontrolki "Kliknięcie" nie jest konieczne, ponieważ wzorzec kontrolki Invoke już opisuje te funkcje.
Jeśli zdecydujesz, że wymagana jest właściwość niestandardowa, zdarzenie lub wzorzec kontrolki, upewnij się, że nie jest zbyt niejasna ani ogólna. Na przykład wzorzec kontrolki o nazwie "Pokaż" nie jest przydatny, ponieważ widoczność kontrolki może być wskazywana przez właściwość dostępności elementu, taką jak UIA_IsExpandCollapsePatternAvailablePropertyId lub UIA_IsScrollItemPatternAvailablePropertyId.
Przed wdrożeniem rozwiązania niestandardowego należy dokładnie potwierdzić, że jest ona potrzebna, a następnie całkowicie zaprojektować funkcjonalność.
Projektowanie właściwości niestandardowych
Automatyzacja interfejsu użytkownika obejmuje dwa podstawowe typy właściwości: właściwości elementu automatyzacji i właściwości wzorca sterowania. Właściwości elementu automatyzacji składają się z wspólnego zestawu właściwości, takich jak Name, AcceleratorKey i ClassName, które są udostępniane przez wszystkie elementy automatyzacji interfejsu użytkownika, niezależnie od typu kontrolki. Właściwości wzorca kontrolki są udostępniane przez kontrolkę za pomocą określonego wzorca kontrolki. Każdy wzorzec kontrolki ma odpowiedni zestaw właściwości wzorca kontrolki, które kontrolka musi uwidocznić. Na przykład kontrolka obsługująca wzorzec kontrolki Grid uwidacznia właściwości ColumnCount i RowCount.
Niestandardowa właściwość elementu automatyzacji lub właściwość wzorca kontrolki powinna być zgodna z następującymi wytycznymi projektowymi:
- Właściwość niestandardowa musi mieć jeden z następujących typów danych określonych przez wyliczenie UIAutomationType. W przypadku właściwości niestandardowych nie są obsługiwane żadne inne typy danych.
- UIAutomationType_Bool
- UIAutomationType_Double
- UIAutomationType_Element
- UIAutomationType_Int
- UIAutomationType_Point
- UIAutomationType_String
- Jeśli właściwość niestandardowa zawiera dane ciągu (BSTR), specyfikacja musi określić, czy właściwość jest lokalizowana (czyli czy ciąg można przetłumaczyć na różne języki interfejsu użytkownika).
- Właściwość niestandardowa nie powinna nakładać się na funkcje ani funkcje istniejących właściwości.
Projektowanie zdarzeń niestandardowych
Aplikacje używają powiadomień o zdarzeniach automatyzacji interfejsu użytkownika do reagowania na zmiany i akcje obejmujące elementy interfejsu użytkownika. Większość właściwości ma skojarzone zdarzenia zmienione właściwości, które są wywoływane przez automatyzację interfejsu użytkownika w przypadku zmiany wartości właściwości. W przypadku wprowadzenia właściwości niestandardowej należy rozważyć wprowadzenie odpowiednich zdarzeń niestandardowych, które mogą być również potrzebne.
Zdarzenie niestandardowe powinno być zgodne z następującymi wytycznymi projektowymi:
- Zdarzenie niestandardowe musi być "bezstanowe". Nie można go skojarzyć z określoną właściwością ani wartością.
- Zdarzenie niestandardowe nie powinno nakładać się na definicję ani rolę żadnego istniejącego zdarzenia.
Niestandardowe zdarzenia automatyzacji interfejsu użytkownika i zdarzenia WinEvents
WinEvents to przydatny mechanizm komunikacji i zdarzeń międzyprocesowych na platformie Microsoft Windows. Jednak wprowadzenie nowego identyfikatora WinEvent jest ryzykowne, ponieważ może powodować kolizje z innymi aplikacjami lub systemem operacyjnym, co powoduje niestabilność systemu. Aby uniknąć kolizji, firma Microsoft zdefiniowała kilka różnych kategorii winEvents, a dla każdej kategorii zdefiniowano co najmniej jeden zakres wartości do użycia jako identyfikatory WinEvent. Aby uzyskać więcej informacji, zobacz Alokacja identyfikatorów WinEvent.
Niestandardowe zdarzenia automatyzacji interfejsu użytkownika unikają konfliktów, przydzielając identyfikator zdarzenia wewnętrznie w strukturze automatyzacji interfejsu użytkownika.
Projektowanie niestandardowych wzorców kontrolek
Wzorzec kontrolki to interfejs z właściwościami, metodami i zdarzeniami, które definiują dyskretny element funkcjonalności dostępny z elementu automatyzacji. Metody wzorca sterowania umożliwiają klientom automatyzacji interfejsu użytkownika manipulowanie określonym aspektem kontrolki. Właściwości i zdarzenia wzorca sterowania zawierają informacje o pewnym aspekcie kontrolki oraz podają informacje o stanie elementu automatyzacji, który implementuje wzorzec kontrolki.
Niestandardowy wzorzec sterowania powinien być zgodny z następującymi wytycznymi projektowymi:
- Niestandardowy wzorzec kontrolki powinien obejmować określony scenariusz. Na przykład wzorzec kontrolki ItemContainer jest przeznaczony do wykonywania zapytań dotyczących zawartego obiektu niezależnie od stanu wirtualizacji, ale nie wylicza ani nie zlicza zawartych obiektów.
- Niestandardowy wzorzec kontrolki nie powinien nakładać się na funkcje istniejących wzorców kontrolek. Na przykład wzorce kontrolek Invoke i ExpandCollapse nie powinny być łączone i prezentowane jako nowy wzorzec kontrolki. Użyj ponownie istniejących wzorców kontrolek lub zdefiniuj unikatowe scenariusze przy użyciu nowych wzorców kontrolek.
- Wiele niestandardowych wzorców kontroli można projektować razem w celu obsługi złożonych scenariuszy. Na przykład wzorce kontrolek wyboru i SelectionItem współpracują ze sobą, aby obsługiwać scenariusze wyboru obiektów ogólnych.
Niestandardowe typy kontrolek
Chociaż w tym temacie opisano sposób rejestrowania niestandardowych właściwości, zdarzeń i wzorców kontrolek automatyzacji interfejsu użytkownika, istnieje również możliwość wprowadzenia nowych typów kontrolek. W przeciwieństwie do niestandardowych właściwości, zdarzeń i wzorców kontrolek niestandardowy typ kontrolki nie może być zarejestrowany programowo w czasie wykonywania, ponieważ jest to w rzeczywistości tylko potencjalna wartość właściwości ControlType automatyzacji interfejsu użytkownika. Można jednak zdefiniować, opublikować i udostępnić niestandardowy identyfikator typu kontroli dla innych klientów i dostawców do użycia. Aby uzyskać więcej informacji na temat typów kontrolek, zobacz Typy kontrolek automatyzacji interfejsu użytkownika — omówienie.
Tematy pokrewne
-
koncepcyjne
-
rejestrowanie niestandardowych właściwości, zdarzeń i wzorców kontrolek
-
Właściwości automatyzacji interfejsu użytkownika — omówienie
-
Wzorce kontrolek automatyzacji interfejsu użytkownika — omówienie