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