使用 PenInputPanel 类对输入面板进行编程
[PenInputPanel 已替换为 Microsoft.Ink.TextInput。 请参阅 文本输入面板编程。]
说明如何使用 PenInputPanel 对象对系统级平板电脑输入面板进行编程。
输入面板与 PenInputPanel 对象
在 Microsoft Windows XP Tablet PC Edition 1.0 中,系统级平板电脑输入面板提供了一种通用机制,用于跨 Windows 平台完成文本输入,但它不提供编程访问。 在 Windows XP Tablet PC Edition 软件开发工具包 (SDK) 版本 1.5 及更高版本中, PenInputPanel 对象使你能够将文本输入工具直接集成到应用程序中,并提供以前不可用的控制级别。 从 Windows XP Tablet PC Edition 2005 开始,系统级输入面板已升级为包含 PenInputPanel 对象等提供的就地输入功能。
下图显示了 自动声明表单示例 上显示的输入面板。
输入面板通过向 Windows XP 平板电脑版本 2005 或更高版本上运行的任何应用程序提供相同的就地输入功能来取代 PenInputPanel ,而无需其他代码。 本文介绍如何使用 PenInputPanel 对象以实现向后兼容性。 已使用 PenInputPanel 对象的应用程序的功能相同,只不过当应用程序在 Windows XP Tablet PC Edition 2005 或更高版本上运行时,将显示输入面板而不是 PenInputPanel 。
如果你正在为平板电脑开发新应用程序,并且想要使用就地用户输入解决方案,则输入面板会在 Windows XP 平板电脑版本 2005 或更高版本上自动提供此功能。 无需实例化 PenInputPanel 对象。
禁用输入面板
在某些情况下,可能需要禁用输入面板。 可通过两种方式来实现此目的。 可以通过编程方式完成此操作,也可以通过设置一个注册表项来禁用整个应用程序的输入面板。
以编程方式禁用输入面板
若要以编程方式禁用输入面板,请实例化 PenInputPanel 并将其 AutoShow 属性设置为 False。
using Microsoft.Ink;
// ...
private PenInputPanel theInputPanel;
// ...
private void Form1_Load(object sender, System.EventArgs e)
{
// Attach the Input Panel to a specific TextBox control.
theInputPanel = new PenInputPanel(textBox1);
// Disable the Input Panel for the TextBox.
theInputPanel.AutoShow = false;
}
若要在单个应用程序中为多个控件禁用输入面板,请实例化每个控件的 PenInputPanel 对象,并将每个控件的 AutoShow属性设置为 False ,或者实例化单个 PenInputPanel ,并在输入焦点更改时将其从控件移动到控件。 有关这两种技术的详细信息,请参阅 PenInputPanel 示例 主题。
通过注册表禁用输入面板
可以设置注册表项来禁用整个应用程序的输入面板。 但是,这也将禁用常见对话框,例如“ 打开文件 ”对话框、“ 打印 ”对话框和“ 文件保存 ”对话框。 这可能会使应用程序中的用户体验与其他平板电脑应用程序不一致。
将 DisableInPlace
注册表项设置为零可防止输入面板用户界面 (UI) 显示在应用程序中。 必须将注册表项放在 DisableInPlace
HKEY_LOCAL_MACHINE\Software\Microsoft\TabletTip\
。 然后,使用要在其中禁用输入面板的应用程序的完整路径添加新的注册表值。 以下示例注册表项在名为 MyApp 的应用程序中禁用输入面板:
[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\WindowsNT\TabletTIP\DisableInPlace]``"C:\Program Files\My App\MyApp.exe"=dword:00000000
如果在禁用输入面板 UI 后应用程序中仍出现问题,则可能需要禁用基础框架,该框架会查询应用程序插入点位置。 例如,输入面板可能会在应用程序的插入点跟踪代码中公开 bug。 关闭插入点跟踪查询还会阻止显示输入面板 UI。 若要禁用框架,请将 EnableCaretTracking
注册表项设置为零。 在 中找到此键 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\CaretTracking\
。
注意
Windows XP 中的辅助功能和语音技术也使用此框架,因此禁用查询也会在应用程序中禁用这些功能。
输入面板和网页
若要在网页上使用 API,它必须在部分信任环境中运行。 除以下内容外,所有 PenInputPanel 类成员都需要完全信任:
- PenInputPanel 构造函数 仅 (托管代码)
- Dispose 方法 仅 (托管代码)
- AttachedEditControl 属性 (托管代码仅)
- AutoShow 属性
这些 API 在部分信任环境(如网页)中发挥作用,使你能够实例化 PenInputPanel 对象,将其附加到控件,并为该控件禁用输入面板。 有关详细信息,请参阅使用 PenInputPanel 类和 Web 上的 Ink 对输入面板进行编程。
PenInputPanel 对象
本主题的其余部分介绍如何在支持平板电脑的应用程序中使用 PenInputPanel 对象。 更具体地说,本主题在讨论编程对象时引用 PenInputPanel 对象,在引用 UI 元素时引用触控笔输入面板,在引用通常位于平板电脑屏幕一侧的全局输入面板时, (或输入面板) 。
以下部分介绍 PenInputPanel 对象和 UI。