平板电脑) (最佳做法
使用 PenInputPanel 对象时,需要牢记一些准则。
首选 InkEdit 控件
InkEdit 是将 PenInputPanel 对象附加到的首选控件。 InkEdit 控件为 文本服务框架 (TSF) 提供支持。
在 InkEdit 控件上禁用墨迹模式
附加到 InkEdit 控件时,将 InkEdit 控件的 InkMode 属性设置为 InkMode 值。 如果未将 InkMode 属性设置为 InkMode 值,InkEdit 控件会将第一个点击解释为笔划,将其传递给识别器,并将文本插入 InkEdit 控件中。 由于已经附加了用于接受墨迹输入的 PenInputPanel 对象,因此无需也为墨迹输入启用 InkEdit 控件。
使用无窗口控件
将 PenInputPanel 对象附加到包含多个无窗口控件的父窗口时,当焦点在无窗口子级之间移动时, PenInputPanel 对象不知道如何跟踪插入点。 当焦点在输入挂起时从一个无窗口控件移动到另一个控件时,可能会将手写输入发送到错误的子级。
若要在无窗口环境中使用 PenInputPanel 对象,可以使用以下技术:
- 实例化 TextBox 控件,并将其置于无窗口控件上。
- 将 PenInputPanel 对象附加到新的文本框控件。
- 让文本框控件从 PenInputPanel 对象收集识别的文本。
- 当焦点远离文本框控件时,调用 PenInputPanel 对象的 CommitPendingInput 方法。
- 将文本框控件中识别的文本复制到无窗口子级。
- 通过将 PenInputPanel 对象的 AttachedEditControl (托管代码仅) 属性或 AttachedEditWindow 属性设置为 null 来分离 PenInputPanel 对象。
- 销毁文本框控件。
相关主题