共用方式為


手寫筆 API 的架構

手寫筆Input API 可讓您與平板電腦手寫筆資料流程互動。 若要與資料流程互動,請將 RealTimeStylus 物件新增至您的應用程式,並將外掛程式新增至 RealTimeStylus 物件。

StylusInput API 中提供兩個外掛程式。 DynamicRenderer物件會實作IStylusSyncPlugin介面。 DynamicRenderer物件會在繪製時即時轉譯筆跡。 GestureRecognizer物件會實作IStylusSyncPluginIStylusAsyncPlugin介面。 GestureRecognizer物件可辨識應用程式手勢。

定義

下列詞彙用於描述手寫筆Input 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.StylusInputMicrosoft.StylusInput.PluginData 命名空間中。 不過,StylusInput API 也會參考Microsoft.Ink命名空間中的某些類別,例如Tablet類別、TabletPropertyDescriptionCollection集合,以及ApplicationGesture 和 SystemGesture列舉。

DynamicRenderer

GestureRecognizer

RealTimeStylus

IStylusAsyncPlugin

IStylusSyncPlugin

使用手寫筆Input API

Cascaded RealTimeStylus 模型