Окно WPF внутри панели WinformHost

Я показываю окно исполняемого файла WPF внутри другого приложения WPF, используя хост winform.

Я создал панель в основном приложении и установил ее как дочернюю для winformhost.

  mHostingPanel = new System.Windows.Forms.Panel()
            {
                BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
            };                


            mWinformHost = new WindowsFormsHost();
            mWinformHost.Child = mHostingPanel;

а затем я запускаю другой оконный процесс и устанавливаю панель хостинга в качестве родительской.

  WindowsAPI.SetParent(mProcess.MainWindowHandle, mHostingPanel.Handle);

Мой вопрос: если я запущу приложение, кто будет отображать мое дочернее окно WPF, родительским элементом которого является панель winform. Будет ли это контекст панели Direct-X или GDI?

Также, если я установлю Allowtransparency = True для дочернего приложения WPF, пользовательский интерфейс не отображается на панели хостинга.


person TRS    schedule 07.10.2016    source источник
comment
Это зло, и не обязательно в плохом смысле!   -  person tolanj    schedule 10.10.2016
comment
Я не думаю, что владение окном вообще повлияет на рендеринг wpf. Я бы посмотрел на это: blogs.msdn.microsoft.com /oldnewthing/20130412-00/?p=4683   -  person tolanj    schedule 10.10.2016
comment
@tolanj: Если вы читаете эту запись в блоге, вы не можете прийти к выводу, что это не обязательно зло. Очень, очень плохо. Это другое приложение, безусловно, не готово к переподчинению. Если бы это было так, это был бы элемент управления ActiveX.   -  person IInspectable    schedule 14.10.2016
comment
Настоящий вопрос не в том, кто отвечает за рендеринг. Настоящий вопрос: работает ли ввод? И ответ на этот вопрос: нет. В какой-то момент он зайдет в тупик.   -  person IInspectable    schedule 14.10.2016


Ответы (1)


Нашел причину. Это называется проблемой воздушного пространства (когда win32 и WPF пытаются совместно использовать пиксели), и я не думаю, что ее можно решить с помощью любого API-интерфейса, поскольку Microsoft отрицает это. https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2644120-bring-back-the-hwndhost-isredirected-and-compositi

Устранение проблем с AirSpace

person TRS    schedule 12.10.2016