StylusInput API 可讓您與平板電腦手寫筆數據流互動。 若要與數據流互動,請將 RealTimeStylus 物件新增至您的應用程式,並將外掛程式新增至 RealTimeStylus 物件。
StylusInput API 中提供兩個外掛程式。 DynamicRenderer 物件會實作 IStylusSyncPlugin 介面。 DynamicRenderer 物件會在繪製時即時呈現筆跡。 GestureRecognizer 物件會實作 IStylusSyncPlugin 和 IStylusAsyncPlugin 介面。 GestureRecognizer 物件可辨識應用程式手勢。
定義
下列詞彙用於描述 StylusInput API 的章節:
同步外掛程式
實作 IStylusSyncPlugin 介面的類別。 同步外掛程式通常由 RealTimeStylus 物件直接呼叫。
異步外掛程式
實作 IStylusAsyncPlugin 介面的類別。 異步外掛程式通常會在應用程式的使用者介面 (UI) 線程上呼叫。
同步外掛程式集合
StylusSyncPluginCollection 集合,這是 IStylusSyncPlugin 物件的已排序集合。 同步外掛程式集合通常是指指派給 RealTimeStylus 物件的 SyncPluginCollection 属性的集合。 只有同步外掛程式可以新增至同步外掛程式集合。
異步外掛程式集合
StylusAsyncPluginCollection 集合,這是 IStylusAsyncPlugin 物件的已排序集合。 異步外掛程式集合通常是指指派給 RealTimeStylus 物件的 AsyncPluginCollection 属性的集合。 只有異步外掛程式可以新增至異步外掛程式集合。
同步和異步外掛程式
RealTimeStylus 對象的設計目的是提供從平板電腦手寫筆即時存取數據流。 針對需要即時存取數據流的工作建立或使用同步外掛程式,而且是計算上未受管理的,例如封包篩選。 針對不需要即時存取數據流的工作建立或使用異步外掛程式,例如在 InkDisp 物件中建立及儲存筆劃。
某些工作可能需要計算需求,但需要對數據流進行即時存取,例如多動作手勢辨識。 為了解決這些需求,StylusInput API 提供串聯 RealTimeStylus 模型,可讓您使用兩個 RealTimeStylus 物件,每個物件都會在其自己的線程上執行。 如需串連 RealTimeStylus 模型的詳細資訊,請參閱 Cascaded RealTimeStylus 模型。
如需使用和建立外掛程式的詳細資訊,請參閱 使用手寫筆Input API。
平板電腦畫筆數據流
RealTimeStylus 物件有兩個內部佇列,可攜帶平板電腦畫筆數據、輸入佇列和輸出佇列。 畫筆數據會轉換成 Microsoft.StylusInput.PluginData 命名空間中的類別實例。 下列清單描述 RealTimeStylus 物件如何處理平板電腦手寫筆數據:
RealTimeStylus 物件會先檢查其輸入佇列上的外掛程式數據物件,然後從平板電腦手寫筆數據流檢查外掛程式數據物件。
RealTimeStylus 物件會將一個外掛程式數據物件傳送至其同步外掛程式集合中的物件。 每個同步外掛程式都可以將數據新增至輸入或輸出佇列。
將外掛程式數據物件傳送到同步外掛程式集合的所有成員之後,外掛程式數據物件會放在 RealTimeStylus 對象的輸出佇列上。
RealTimeStylus 對象,然後檢查要處理的下一個外掛程式數據物件。
雖然 RealTimeStylus 對象的輸出佇列包含數據,但 RealTimeStylus 物件會將一個外掛程式數據物件從其輸出佇列傳送至異步外掛程式集合中的物件。 每個異步外掛程式都可以將數據新增至輸入或輸出佇列。 不過,由於異步外掛程式會在UI線程上執行,因此數據會新增至佇列中,而與目前手寫筆數據相關的 RealTimeStylus 物件正在處理,而不是與異步外掛程式正在處理的數據有關。
下圖說明平板電腦手寫筆數據的流程,透過 RealTimeStylus 物件及其外掛程式集合。
透過 realtimestylus 物件及其外掛程式集合
在此圖表中,標示為 「A」 和 「B」 的圓形代表已新增至 RealTimeStylus 物件的輸出佇列,且尚未傳送至異步外掛程式集合的平板電腦畫筆數據。 標示為 「C」 的圓形代表 RealTimeStylus 物件目前正在處理的平板電腦手寫筆數據。 它會傳送至同步外掛程式集合,並放在輸出佇列上。 空的圓形代表輸出佇列中新增未來平板電腦畫筆數據的位置。
如需如何將特定數據新增至佇列和處理的詳細資訊,請參閱 外掛程式數據和 RealTimeStylus 類別。
手寫筆Input API
StylusInput API 主要位於 Microsoft.StylusInput 和 Microsoft.StylusInput.PluginData 命名空間中。 不過,StylusInput API 也會參考 Microsoft.Ink 命名空間中的某些類別,例如 Tablet 類別、TabletPropertyDescriptionCollection 集合,以及 ApplicationGesture 和 SystemGesture 列舉。
相關主題