我正在移植一个 WPF 应用程序以在 Windows 8 平板电脑上运行。
我想让 TextInputPanel 在文本框获得焦点时出现,并在失去焦点时消失。
让它出现没问题,但我似乎无法让它接近。
我已经在进程上尝试了 Kill 和 CloseMainWindow,但得到了 InvalidOperationException - 由于进程已退出,无法处理请求。
我尝试了 SendMessage 但没有。
有任何想法吗?
一些 WinForm 测试代码如下:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace VirtualKeyboard
{
public partial class Form1 : Form
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
static uint WM_CLOSE = 0x0010;
static uint WM_QUIT = 0x0012;
public Form1()
{
InitializeComponent();
}
private Process _keyboardProcess;
private void Open_Click(object sender, EventArgs e)
{
_keyboardProcess = Process.Start(@"C:\Program Files\Common Files\microsoft shared\ink\tabtip.exe");
}
private void Close_Click(object sender, EventArgs e)
{
// tried all these
//SendMessage(_keyboardProcess.Handle, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
//SendMessage(_keyboardProcess.Handle, WM_QUIT, IntPtr.Zero, IntPtr.Zero);
//_keyboardProcess.Kill();
//_keyboardProcess.CloseMainWindow();
}
}
}