Dynamic-Renderer 插件

动态呈现器插件是一个对象,它在 由 RealTimeStylus 对象处理时实时显示平板电脑笔数据。 稍后,对于窗体刷新等事件,动态呈现器插件或墨迹收集器插件可能会重绘墨迹。

DynamicRenderer 对象

RealTimeStylus 对象实现 IStylusSyncPlugin 接口。 DynamicRenderer 对象在绘制墨迹时实时呈现墨迹。 启用 DynamicRenderer 对象时调用 Refresh 方法时,DynamicRenderer 对象将重绘当前正在收集的笔划。 DynamicRenderer 对象的 Enabled 属性最初设置为 FALSE

注意

从托管代码中的 Paint 事件处理程序中调用 DynamicRenderer 对象的 Refresh 方法时,请将 DynamicRenderer 对象的 ClipRectangle 属性设置为 PaintEventArgs 对象的 ClipRectangle 属性。

 

DynamicRenderer 对象可以暂时缓存墨迹数据。 若要在托管代码中使用此功能,请将 EnableDataCache 属性设置为 TRUE。 当 DynamicRenderer 对象收到对其 IStylusSyncPlugin.StylusUp 方法的调用时,它会缓存笔划数据并将自定义触笔数据添加到输入队列,以响应笔划的 StylusUpData 对象。 CustomStylusData 对象的 CustomDataId 属性设置为 DynamicRendererCachedDataGuid 值,CustomStylusData 对象的 Data 属性包含 DynamicRendererCachedData 对象。 收集了笔划并可以静态呈现后,调用 DynamicRenderer 对象的 ReleaseCachedData 方法。 启用 DynamicRenderer 对象时调用 Refresh 方法时,DynamicRenderer 对象将重绘缓存的所有笔划。 当 DataCacheEnabled 属性设置为 false 时,将删除缓存的笔划数据。

下图演示了设置 DynamicRenderer 对象的 DataCacheEnabled 属性时,DynamicRenderer 对象如何将数据添加到平板电脑笔数据。

显示动态呈现器数据流的插图

在此图中,带“SD”的圆圈表示一个StylusDown 对象,以“P”为字母的圆圈表示已添加到 RealTimeStylus 对象的输出队列中且尚未发送到异步插件集合的 Packets 对象。 字母为“SU”的圆圈表示 RealTimeStylus 对象当前正在处理的 StylusUp 对象。 它被发送到同步插件集合,然后放置在输出队列中。 字母为“DR”的圆圈表示 由 DynamicRenderer 插件添加到输入队列的自定义触笔数据,以响应与“SU”关联的触笔通知。 然后,将写有“DR”的自定义触笔数据传递到同步插件,然后传递到输出队列,然后再处理下一个平板电脑笔数据。 空圆表示在输出队列中添加未来平板电脑笔数据的位置。 图中还表示的墨迹收集器插件调用 DynamicRenderer 对象的 ReleaseCachedData 方法,以在墨迹收集插件处理笔划后释放缓存的笔划数据。

特殊注意事项

以下列表描述了使用 DynamicRenderer 对象时要考虑的其他要点。

自定义呈现

可以通过创建订阅 StylusDownPacketsStylusUp 通知的同步插件来创建自己的动态呈现器插件。 然后,插件可以在绘制笔划时呈现笔划。 例如,这可能是实现使用自由格式选择或选择框的选择工具的一种方式。