墨迹集合

墨迹集合以数字化器开头。 用户将笔放在数字化器上,并开始写入。 可以使用 API 的墨迹收集功能来管理笔中“流”的墨迹数据的集合。 可以通过 平板电脑 集合和 平板电脑 对象访问平板电脑上可用硬件的相关信息。 然后,使用 InkCollector 对象获取来自数字化器的数据。

平板电脑和平板电脑对象

平板电脑表示平板电脑的数字化器设备。 平板电脑可能有多个数字化器。 使用 Tablet 对象,可以查询附加到平板电脑及其各自的硬件功能的可用数字化器设备。 例如,你可以确定你正在使用的 平板电脑 是否与显示器集成,或者是单独的外部设备。

InkCollector 对象

InkCollector 对象从可用的平板电脑设备捕获墨迹输入。 InkCollector 对象仅收集输入到特定窗口中的墨迹和手势。 非常高效的事件接收器实时呈现此输入。 InkCollector 对象捕获输入并将其定向到 Ink 对象。

注意

同时放置具有多个笔的墨迹可能不起作用,具体取决于数字化器设备的硬件功能。

 

墨迹收集器的工作原理

InkCollector 对象将自身附加到已知的应用程序窗口。 然后,用户可以使用任何可用的平板电脑设备 (,包括鼠标) 在窗口上实时放置墨迹。 收集的墨迹笔划存储在关联的 Ink 对象中。 然后,可以操作这些笔划或发送到识别器进行识别。 InkCollector 对象还会在光标进入正在使用的任何平板电脑设备的范围时通知应用程序。

对于 InkCollector 对象,若要在启用墨迹的窗口中准确设置鼠标光标,该窗口必须能够接收 WM_SETCURSOR 消息。 这适用于所有常规窗口,但对于对话框中的控件,控件的对话框父级会筛选此消息。 要使控件接收消息,请设置 SS_NOTIFY 样式。

InkOverlay 对象

前面讨论的 InkCollector 对象对于应用程序而言非常有用,用于选择、擦除和其他用户交互。 InkOverlay 对象是 InkCollector 对象的超集,它提供编辑支持。 这对于应用程序使用对象提供的一组标准墨迹选择模型将墨迹绘图和编辑集成到自己的文档画布中非常有用。

InkCollector 对象和 InkOverlay 对象 (以及 InkPicture 控件) 使用常见构造(如 Ink 对象和 DrawingAttributes 集合),以便更改墨迹颜色的基本方法无处不在。 这样,便可以重复使用代码并具有常见的编程访问,如果在应用程序中提供脚本支持,这尤其重要。

InkOverlay 是一个 COM 对象,对于注释方案,用户不关心对墨迹执行识别,而是对墨迹的大小、形状、颜色和位置感兴趣。 它非常适合做笔记和基本涂鸦。 默认用户界面是带有不透明墨迹的透明矩形。

InkOverlay 以三种方式扩展 InkCollector 类:

  • 它会引发开始笔划、结束笔划和墨迹属性更改的事件。
  • 它使用户能够选择、擦除和调整墨迹大小。
  • 它支持剪切、复制和粘贴命令。

InkOverlay 在标记演示文稿幻灯片或图像时非常有用的典型方案。 InkOverlay 对象可以轻松实现此方案所需的墨迹和布局功能。

若要使用 InkOverlay,可以:

  1. 实例化 InkOverlay 对象。
  2. 将窗口的托管代码) 中的 hWnd (句柄附加到托管代码 (Handle 属性的 InkOverlay 对象的 hWnd 属性) 。
  3. InkOverlay 对象的 Enabled 属性设置为 TRUE

InkOverlay 对象包括基本打印支持,但必须实现打印预览或其他高级打印功能。

InkOverlay 在 ISF) (墨迹序列化格式中保留墨迹。

注意

如果 InkOverlay 对象的 EditingMode 设置为 “删除 ”或 “选择”,则会触发其他事件 (,例如 InkAddedInkDeletedStroke) 。 如果要实现自己的删除或选择模式,这些事件非常有用。

 

选择墨迹

InkOverlay 对象允许用户使用套索工具选择包含在跟踪区域中的墨迹对象。 用户还可以通过点击任何 Ink 对象来选择 墨迹

使用 Selection 属性可返回可用于操作用户选择的 Strokes 集合。

选择 Ink 对象或一组 Ink 对象时,大小控点将显示在墨迹边界框的四角以及相邻角之间的所有中点处。 如果用户在所选区域中的任意位置拖动,墨迹将在控件内移动。

默认行为

默认情况下,InkOverlay 对象设置为收集墨迹。 墨迹是宽 53 个墨迹空间单位 (,其中 1 个墨迹空间单位 = 1 HIMETRIC) 。 如果用户未在高对比度模式下运行,则墨迹为黑色。 否则,墨迹将设置为托管代码) 中的 windowText (COLOR_WINDOWTEXT 值。 FitToCurveFALSE

游标和按钮对象

光标对应于平板电脑上使用的笔尖。 例如,铅笔有两端。 通常,一端用于写作,另一端用于擦除。 这两端对应于两个游标。 Cursor 类与 System.Windows 不混淆。Forms.Cursor

在平板电脑电脑上,光标通常定义为用于写入或擦除。 如果应用程序启用此功能,游标可能会更改角色。 某些平板电脑设备允许多个笔。 每个游标都有一个在系统上唯一的关联游标 ID。 游标可以有零个或多个关联的按钮。 这些按钮作为 CursorButton 对象提供给应用程序。 应用程序可以为任何给定的游标提供特定的 DrawingAttributes 对象。

Drawing Attributes 对象

DrawingAttributes 对象描述绘制任何已知墨迹集的方式。 DrawingAttributes 对象包括基本属性,如 ColorWidthPenTip。 它还可以包含高级参数,如可变透明度和贝塞尔平滑,可以提供有趣的效果或提高墨迹可读性。

PenInputPanel 对象

注意

PenInputPanel 类已弃用。 PenInputPanel 类已被 TextInputPanel 类替换。

 

PenInputPanel 对象允许你轻松地向应用程序添加就地笔输入。 PenInputPanel 可用作可附加对象,可用于向现有控件添加平板电脑输入面板功能。 用户界面主要由当前输入语言授权。 可以选择 为 PenInputPanel(手写或键盘)选择默认输入法。 最终用户可以使用用户界面上的按钮在输入方法之间切换。

InkCollector 类 (C++)

InkOverlay 类 (C++)

Microsoft.Ink 命名空间