墨迹控件

平板电脑平台提供两个控件 :InkEditInkPicture,使你能够轻松地将墨迹和手写识别添加到平板电脑应用程序。 InkEdit 控件具有 托管ActiveX 和 Win32 版本,而 InkPicture 只有托管 的 InkPictureActiveX 版本。

控件之间的主要区别在于数据的保存方式。 默认情况下,InkEdit 控件将墨迹保存为文本,而 InkPicture 将墨迹保存为墨迹。

InkEdit 控件用于通过手写识别输入文本。 InkPicture 用于批注 (例如,标记演示文稿幻灯片或其他图片) 。

在托管代码中,在窗体的main线程所在的线程中创建墨迹控件。 如果在其他线程中创建 InkEditInkPicture 控件,则应用程序可能无法正确响应。

在创建墨迹控件之前,应将线程模型显式更改为单线程单元 (STA) 。 这会导致在main线程上创建控件。 可以使用以下托管 C++ 代码显式设置线程模型。

Thread::get_CurrentThread()->set_ApartmentState(ApartmentState::STA);

可以使用以下代码在 C# 中执行相同操作。

System.Threading.Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;

在托管代码中,若要避免内存泄漏,必须在已附加事件处理程序的任何平板电脑控件上显式调用 Dispose 方法,然后控件才会超出范围。

以下各节介绍墨迹控件以及墨迹控件在应用程序中的使用: