辨識器外掛程式是物件,可監視平板電腦手寫筆的手勢、手寫或其他對象的移動。
系統手勢
RealTimeStylus 物件可辨識系統手勢。 RealTimeStylus 物件會將 SystemGestureData 物件新增至 StylusQueues 佇列,以回應完成手勢的數據,例如 SystemGestureStylusUpData 物件。 如需詳細資訊,請參閱 外掛程式資料和 RealTimeStylus 類別。
GestureRecognizer 物件
GestureRecognizer 對象會實作 IStylusSyncPlugin 和 IStylusAsyncPlugin 介面。 GestureRecognizer 物件可辨識應用程式手勢。 在內部,GestureRecognizer 物件會使用Microsoft手勢辨識器來執行手勢辨識。
當 GestureRecognizer 物件辨識手勢時,它會將自定義手寫筆數據新增至 StylusQueues 佇列,以回應筆劃的 StylusUpData 物件。 CustomStylusData 物件的 CustomDataId 属性會設定為 GestureRecognitionDataGuid 值,而 CustomStylusData 物件的 Data 属性包含 GestureRecognitionData 物件。
下圖說明 GestureRecognizer 物件如何將數據新增至平板電腦手寫筆數據。
在此圖表中,字母為 「SD」 的圓形代表 StylusDownData 物件,而字母為 “P” 的圓形 代表已新增至 RealTimeStylus 物件的輸出佇列,且尚未傳送至異步外掛程式集合的 CirclesData 物件。 字母為 “SU” 的圓形代表 StylusUpData 物件,RealTimeStylus 物件目前正在處理。 它會傳送至同步外掛程式集合,然後放在輸出佇列上。 字母為 「GR」 的圓形代表由 GestureRecognizer 外掛程式新增至輸入佇列的自定義手寫筆數據,以回應與 “SU” 相關聯的手寫筆通知。 接著,以 「GR」 字母命名的自定義手寫筆數據會傳遞至同步外掛程式,然後在處理下一個平板電腦畫筆數據之前,再傳遞至輸出佇列。 空的圓形代表輸出佇列中新增未來平板電腦畫筆數據的位置。
根據預設,GestureRecognizer 物件只會辨識單筆劃手勢;不過,GestureRecognizer 物件可以設定為辨識多動作手勢。 針對多擊手勢,CustomStylusData 物件會新增至 StylusQueues 佇列,以回應筆勢最終筆劃的 StylusUpData 物件。 辨識多動作手勢時,您可能會收到重疊筆劃集的通知。 例如,第一個和第二個筆劃可以一起辨識為一個手勢,而第二個筆劃本身可以辨識為手勢。 如需多動作手勢辨識的詳細資訊,請參閱 GestureRecognizer 類別和 MaxStrokeCount 属性。
如果您使用 GestureRecognizer 對象進行多重動作手勢辨識,您可以使用串聯的 RealTimeStylus 模型,並將 GestureRecognizer 物件附加至次要 RealTimeStylus 物件,以達到最佳效能。 如需 RealTimeStylus 模型串聯 的詳細資訊,請參閱 Cascaded RealTimeStylus 模型。
特殊考慮
下列清單描述使用 GestureRecognizer 物件時要考慮的其他重點。
- 您不應該將 GestureRecognizer 物件附加至多個 RealTimeStylus 物件。 一旦啟用兩個 RealTimeStylus 物件 GestureRecognizer 物件,就會發生下列情況。
- GestureRecognizer 對象會擲回例外狀況,以回應其 RealTimeStylusEnabled 方法的第二次呼叫。
- 啟用的第二個 RealTimeStylus 對象會產生 ErrorData 物件,並通知錯誤外掛程式集合中的其餘外掛程式。
- GestureRecognizer 物件會停止辨識手勢。
- RealTimeStylus 物件會在呼叫其 AddCustomStylusDataToQueue 方法時擲回例外狀況,方法是使用設定為 Microsoft.StylusInput.GestureRecognizer.GestureRecognitionDataGuid 全域唯一標識符 (GUID) 的 guid 參數。
- GestureRecognizer 物件會實作為元件物件模型 (COM) 包裝函式,您無法直接呼叫其 IStylusSyncPlugin 或 IStylusAsyncPlugin 介面方法。 如需 COM 實作和 RealTimeStylus 物件的詳細資訊,請參閱 StylusInput API 的實作注意事項。
自定義手勢辨識
您可以建立自訂辨識器外掛程式,以透過下列方式辨識手寫、手勢或其他物件:
- 將筆劃資訊傳遞至現有的 辨識器 物件,並使用 AddCustomStylusDataToQueue 方法,將結果新增至平板電腦畫筆數據流。
- 在外掛程式內執行辨識,並使用 AddCustomStylusDataToQueue 方法,將結果新增至平板電腦畫筆數據流。
相關主題