StylusInput API 的设计注意事项
下面是 StylusInput API 的设计注意事项。
可以在触控笔关闭时更新 RealTimeStylus 对象的 WindowInputRectangle 属性和 DynamicRenderer 对象的 ClipRectangle 属性。 当你希望在应用程序收集墨迹时拥有动态绘图区时,这非常有用。
若要优化插件代码的重用和维护,插件不应直接调用应用程序,而应使用托管代码中的 CustomStylusData (CustomeStylusData 对象) 与应用程序通信。
RealTimeStylus 对象的插件集合是有序的。 插件在这些集合中的相对位置可能非常重要。 例如,在动态呈现器插件之前,应该将修改数据包信息的插件添加到同步插件集合中。
应谨慎使用将自定义触笔数据添加到平板电脑笔数据流的功能。 仅当其他插件需要将此信息作为数据流的一部分接收时才使用此功能。 此外,避免添加自定义触笔数据以响应进入插件的其他自定义触笔数据,因为这样可能会创建无限循环。
启用 RealTimeStylus 对象时,可以修改插件集合;但是,这会使应用程序的行为更难预测。 启用 RealTimeStylus 对象时添加插件时, RealTimeStylus 对象将调用插件的 Microsoft.StylusInput.IStylusSyncPlugin。 RealTimeStylusEnabled 方法 (托管代码) 中的 Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusEnabled 或 Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusEnabled 方法。 在启用 RealTimeStylus 对象时删除插件时, RealTimeStylus 对象调用插件的 RealTimeStylusDisabled 方法 (托管) 代码中的 Microsoft.StylusInput.IStylusSyncPlugin.RealTimeStylusDisabled 或 Microsoft.StylusInput.IStylusAsyncPlugin.RealTimeStylusDisabled 方法。 这允许插件保持其正确状态,而无需检查 RealTimeStylus 对象的 Enabled 属性。启用 RealTimeStylus 对象时添加插件时,插件接收的插件数据可能不包含足够的信息,无法充分建立初始数据的上下文。 例如,新添加的插件可能开始从笔中接收数据包数据。 同样,在启用 RealTimeStylus 对象时删除插件时,插件收到的插件数据可能不足以完成数据的处理。
注意
为了保持整体稳定性,请在调用其 RealTimeStylusEnabled 或 RealTimeStylusDisabled 方法时重置插件的内部状态。
如果插件修改其附加到的插件集合, 则 RealTimeStylus 对象将引发异常。 仅当插件被 RealTimeStylus 对象作为该集合的成员调用时,才会发生这种情况。