StylusInput API 的设计注意事项

以下是 StylusInput API 的设计注意事项。

  • 可以在笔关闭时更新 RealTimeStylus 对象的 WindowInputRectangle 属性和 DynamicRenderer 对象的 ClipRectangle 属性。 当你希望在应用程序收集墨迹时具有动态绘图区时,这非常有用。

  • 为了优化插件代码的重用和维护,插件不应直接调用应用程序,而是应使用 CustomStylusDataCustomeStylusData 对象)与应用程序通信。

  • RealTimeStylus 对象的插件集合是有序的。 这些集合中插件的相对位置可能非常重要。 例如,修改数据包信息的插件应在动态呈现器插件插件之前添加到同步插件集合中。

  • 应谨慎使用将自定义触笔数据添加到平板电脑笔的数据流。 仅当另一个插件需要接收此信息作为数据流的一部分时,才使用此功能。 此外,避免添加自定义触笔数据以响应传入插件的其他自定义触笔数据,因为这样可以创建无限循环。

  • 启用 RealTimeStylus 对象时,可以修改插件集合;但是,这会使应用程序的行为难以预测。 启用 RealTimeStylus 对象时添加插件时,RealTimeStylus 对象调用插件的 Microsoft.StylusInput.IStylusSyncPlugin。 RealTimeStylusEnabled 方法(Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabledMicrosoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled 方法)。 启用 RealTimeStylus 对象时删除插件时, RealTimeStylus 对象调用插件的 RealTimeStylusDisabled 方法(Microsoft.StylusInput.IStylusSync 托管代码中的Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled 方法)。 这样,插件就可以保持其正常状态,而无需检查 RealTimeStylus 对象的 Enabled 属性。启用 RealTimeStylus 对象时添加插件时,插件接收的插件数据可能没有足够的信息来充分建立初始数据的上下文。 例如,新添加的插件可以开始从中划笔接收数据包数据。 同样,在启用 RealTimeStylus 对象时删除插件时,插件收到的插件数据可能不足以完成数据处理。

    注意

    为了获得整体稳定性,当调用插件的 RealTimeStylusEnabledRealTimeStylusDisabled 方法时,重置插件的内部状态。

     

  • RealTimeStylus 对象在插件修改所附加到的插件集合时引发异常。 仅当插件在 RealTimeStylus 对象作为该集合的成员调用时,才会发生这种情况。