Я пытаюсь использовать эту функцию из COM API, которая позволяет окну получать капли (как в drag & dop) из другого приложения.
Это довольно просто в Windows Forms и работает:
public void EnableDropSupport(System.Windows.Forms.Form form)
{
IntPtr hwnd = form.Handle;
_comAPI.RegisterDropWindow((int)hwnd);
}
Но у меня есть окно WPF, где оно не работает, и я не понимаю, почему. Я пробовал следующее:
public void EnableDropSupport(System.Windows.Window window)
{
window.AllowDrop = true;
WindowInteropHelper windowInteropHelper = new WindowInteropHelper(window);
IntPtr hwnd = windowInteropHelper.Handle;
_comAPI.RegisterDropWindow((int)hwnd);
}
Последние две строки в основном идентичны, но они не будут работать в WPF. Пока
window.AllowDrop = true;
заставит его выглядеть так, как если бы он принял удаление, событие удаления этого COM API не вызывается.
Я что-то упустил или кто-то может помочь?