Como fechar o TextInputPanel
Estou portando um aplicativo WPF para ser executado em um tablet com Windows 8.
Eu quero fazer um TextInputPanel aparecer quando uma caixa de texto fica em foco e desaparece quando perde o foco.
Fazer isso aparecer não é problema, mas parece que não consigo chegar perto.
Eu tentei tanto o Kill quanto o CloseMainWindow no processo, mas recebi uma solicitação InvalidOperationException - Não é possível processar porque o processo foi encerrado.
Eu tentei SendMessage mas nada.
Alguma ideia?
Algum código de teste do WinForm segue:
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();
}
}
}