Share via


InkCollector 类

表示一个对象,该对象用于从可用的 Tablet 设备捕获墨迹

命名空间:  Microsoft.Ink
程序集:  Microsoft.Ink(在 Microsoft.Ink.dll 中)

语法

声明
<UIPermissionAttribute(SecurityAction.Demand, Window := UIPermissionWindow.SafeTopLevelWindows)> _
<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _
Public Class InkCollector _
    Implements IDisposable
用法
Dim instance As InkCollector
[UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class InkCollector : IDisposable
[UIPermissionAttribute(SecurityAction::Demand, Window = UIPermissionWindow::SafeTopLevelWindows)]
[PermissionSetAttribute(SecurityAction::InheritanceDemand, Name = L"FullTrust")]
public ref class InkCollector : IDisposable
/** @attribute UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows) */
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
public class InkCollector implements IDisposable
public class InkCollector implements IDisposable

备注

警告

若要避免内存泄漏,必须在已附加事件处理程序的任何 InkCollector 对象超出范围之前,对该对象显式调用 Dispose 方法。

InkCollector 对象只收集墨迹和笔势 输入。InkCollector 的唯一用途是从硬件收集墨迹(例如,使用 CursorTablet 对象),并将它传递到应用程序。实际上,它将墨迹 分发到一个或很多个不同的 Ink 对象中,这些对象充当了容纳所分发的墨迹的容器。

若要使用 InkCollector,请创建它,并设置用于收集所绘墨迹的窗口,然后启用它。在启用 InkCollector 之后,它只能以三种模式(在 CollectionMode 枚举中指定)中的一种来收集墨迹:

  • InkOnly,在该模式中创建 Stroke 对象。

  • GestureOnly,在该模式中创建 Gesture 对象。

  • InkAndGesture,在该模式中创建笔画和/或笔势,具体取决于应用程序如何处理事件。

对于 Tablet 范围内的每次光标移动,InkCollector 将收集笔画或/和笔势。笔势支持是在使用 Microsoft 笔势识别器 时生成的。

InkCollector 处理 Tablet 输入。可以同时从所有附加的 Tablet(包含鼠标)收集墨迹。CursorCursorButton 对象中的更改可能导致 InkCollector 对象激发事件。

InkCollector 还管理在其存在期间遇到的光标的列表。当 InkCollector 遇到新光标时,将激发 CursorInRange 事件,并将 InkCollectorCursorInRangeEventArgs 对象的 NewCursor 属性设置为 true。应用程序使用 InkCollector 来管理新光标。

多个 InkCollector 可以与一个特定窗口句柄关联,即使其收集区域(通过使用构造函数或 SetWindowInputRectangle 方法设置)重叠也是如此。但是,仅当每个 InkCollector 都调用 SetSingleTabletIntegratedMode 并使用唯一的 Tablet 时,这种情况才有效。由于这一行为,可以很方便地在单独的对象中存储每个 Tablet 的墨迹。

如果一个已启用的 InkCollector 对象(用 Enabled 属性设置)的窗口输入矩形与另一个已启用的 InkCollector 的窗口输入矩形重叠,则会出现错误。

备注

只要每次仅启用一个输入矩形,那么即使发生重叠也不会出错。

MouseDownMouseMoveMouseUpMouseWheel 事件返回 x 坐标和 y 坐标(以像素为单位,而不是与墨迹空间 关联的 HIMETRIC 单位)。这是因为这些事件替换了无法识别笔的应用程序的鼠标事件,并且这些应用程序只理解像素。

使用 Microsoft Foundation Classes (MFC) 创建的应用程序与使用 Microsoft Visual Basic 创建的应用程序相比,其中的 InkCollector 的行为存在差异。有关这些行为的更多信息,请参见Ink Collection

备注

在非用户界面 (UI) 线程上,无法安全释放 InkCollector 对象。

若要改进应用程序的性能,请在不再需要 InkCollector 对象时以手动方式将其释放。

ms583683.alert_security(zh-cn,VS.90).gif安全说明:

如果在部分信任环境下使用,则此类及其所有方法都需要 UIPermissionWindow.SafeTopLevelWindows 权限。有关更多信息,请参见Security And Trust

继承层次结构

System.Object
  Microsoft.Ink.InkCollector

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

平台

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

InkCollector 成员

Microsoft.Ink 命名空间

Ink

InkOverlay

InkPicture

InkEdit

其他资源

Ink Collection