Как закрыть TextInputPanel
Я портирую приложение 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();
}
}
}