Jak zamknąć TextInputPanel
Przenoszę aplikację WPF na tablet z systemem Windows 8.
Chcę, aby tekst TextInputPanel pojawił się, gdy pole tekstowe zostanie skupione i zniknie, gdy straci ostrość.
Sprawienie, by wyglądało, nie stanowi problemu, ale nie mogę go zamknąć.
Próbowałem zarówno Kill, jak i CloseMainWindow w procesie, ale otrzymałem InvalidOperationException - Nie można przetworzyć żądania, ponieważ proces został zakończony.
Próbowałem SendMessage, ale nic.
Jakieś pomysły?
Oto następujący kod testowy 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();
}
}
}