Wtyczki rozpoznawania
Wtyczka rozpoznawania to obiekt, który monitoruje ruch pióra tabletu pod kątem gestów, pisma ręcznego lub innych obiektów.
Gesty systemowe
Obiekt RealTimeStylus rozpoznaje gesty systemowe. Obiekt RealTimeStylus dodaje obiekt SystemGestureData do kolejki StylusQueues w odpowiedzi na dane, które kończą gest, takie jak obiekt StylusUpData dla SystemGesture. Aby uzyskać więcej informacji, zobacz Plug-in Data and the RealTimeStylus Class.
Obiekt GestureRecognizer
Obiekt GestureRecognizer implementuje interfejsy IStylusSyncPlugin i IStylusAsyncPlugin. Obiekt GestureRecognizer rozpoznaje gesty aplikacji. Wewnętrznie obiekt GestureRecognizer używa rozpoznawania gestów firmy Microsoft do rozpoznawania gestów.
Gdy obiekt GestRecognizer rozpoznaje gest, dodaje niestandardowe dane rysika do kolejki StylusQueues w odpowiedzi na obiekt StylusUpData dla pociągnięcia. Właściwość CustomStylusData obiektu CustomDataId jest ustawiona na właściwość GestureRecognitionDataGuid, a właściwość Data obiektu CustomStylusData zawiera obiekt GestureRecognitionData.
Na poniższym diagramie pokazano, jak obiekt GestureRecognizer dodaje dane do danych pióra tabletu.
Na tym diagramie okrąg litera "SD" reprezentuje obiekt StylusDownData, a okręgi z literą "P" reprezentują PacketsData obiektów, które zostały już dodane do kolejki wyjściowej obiektu RealTimeStylus i które nie zostały jeszcze wysłane do asynchronicznej kolekcji wtyczek. Okrąg litera "SU" reprezentuje obiekt StylusUpData, który obecnie przetwarza obiekt RealTimeStylus. Jest ona wysyłana do kolekcji wtyczek synchronicznych, a następnie umieszczana w kolejce wyjściowej. Okręgi oznaczone literą "GR" reprezentują niestandardowe dane stylus dodawane do kolejki wejściowej przez GestureRecognizer wtyczkę w odpowiedzi na powiadomienie rysika skojarzone z "SU". Niestandardowe dane stylus z literą "GR" są następnie przekazywane do synchronicznych wtyczek, a następnie do kolejki wyjściowej przed przetworzeniem następnych danych pióra tabletu. Puste koło reprezentuje pozycję w kolejce wyjściowej, w której są dodawane przyszłe dane pióra tabletu.
Domyślnie obiekt GestureRecognizer rozpoznaje tylko gesty jednosuwowe; można jednak ustawić obiekt GestureRecognizer w celu rozpoznawania gestów wielosstrojowych. W przypadku gestów wielostrojowych obiekt CustomStylusData jest dodawany do kolejki StylusQueues w odpowiedzi na obiekt StylusUpData dla końcowego pociągnięcia gestu. Podczas rozpoznawania gestów wieloskładnikowych można otrzymywać powiadomienia dotyczące nakładających się zestawów pociągnięć. Na przykład pierwsze i drugie pociągnięcia mogą być rozpoznawane jako jeden gest, a drugi pociągnięcie może być rozpoznawane jako gest. Aby uzyskać więcej informacji na temat rozpoznawania gestów wielostrojowych, zobacz klasę GestureRecognizer i właściwość MaxStrokeCount.
Jeśli używasz obiektu GestureRecognizer do rozpoznawania gestów wielostrojowych, możesz uzyskać optymalną wydajność przy użyciu kaskadowego modelu RealTimeStylus i dołączania obiektu GestureRecognizer do pomocniczego obiektu RealTimeStylus. Aby uzyskać więcej informacji na temat kaskadowego modelu RealTimeStylus, zobacz Cascaded RealTimeStylus Model.
Zagadnienia specjalne
Na poniższej liście opisano inne kwestie, które należy wziąć pod uwagę podczas korzystania z obiektu GestureRecognizer.
- Nie należy dołączać obiektu GestureRecognizer do więcej niż jednego obiektu RealTimeStylus. Po włączeniu dwóch obiektów RealTimeStylus, do których jest włączony obiekt GestureRecognizer.
- Obiekt GestureRecognizer zgłasza wyjątek w odpowiedzi na drugie wywołanie metody RealTimeStylusEnabled.
- Drugi obiekt RealTimeStylus, który został włączony, generuje obiekt ErrorData i powiadamia pozostałe wtyczki w kolekcjach wtyczki błędu.
- Obiekt GestureRecognizer zatrzymuje rozpoznawanie gestów.
- Obiekt RealTimeStylus zgłasza wyjątek, gdy jego AddCustomStylusDataToQueue metoda jest wywoływana z identyfikatorem guid identyfikatorem ustawionym na microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid globalnie unikatowy identyfikator (GUID).
- Obiekt GestureRecognizer jest implementowany jako otoka modelu obiektów składników (COM) i nie można bezpośrednio wywołać jego IStylusSyncPlugin lub metod interfejsu IStylusAsyncPlugin. Aby uzyskać więcej informacji na temat implementacji modelu COM i obiektu RealTimeStylus, zobacz informacje o implementacji dla interfejsów API StylusInput.
Niestandardowe rozpoznawanie gestów
Możesz utworzyć niestandardową wtyczkę rozpoznawania, która rozpoznaje pismo ręczne, gesty lub inne obiekty za pomocą:
- Przekazywanie informacji o pociągnięciu do istniejącego obiektu rozpoznawania i przy użyciu metody AddCustomStylusDataToQueue, aby dodać wyniki do strumienia danych pióra tabletu.
- Rozpoznawanie wtyczki i używanie metody AddCustomStylusDataToQueue w celu dodania wyników do strumienia danych pióra tabletu.
Tematy pokrewne