Winform диалог с окном WPF в качестве родителя - PullRequest
14 голосов
/ 19 октября 2011

У меня есть диалоговое окно WinForm, и я хочу установить его свойство Parent в окно WPF.Как я могу это сделать?

Ответы [ 2 ]

7 голосов
/ 02 декабря 2011

Рассмотрим передачу параметра в метод ShowDialog вместо использования свойства Parent.

Вы можете написать вспомогательный класс

class Wpf32Window : IWin32Window
{
  public IntPtr Handle { get; private set; }

  public Wpf32Window(Window wpfWindow)
  {
    Handle = new WindowInteropHelper(wpfWindow).Handle;
  }
}

public static class WindowExtensions
{
  public static IWin32Window GetWin32Window (this Window parent)
  {
    return new Wpf32Window(parent);
  }
}

После этого вы можете просто написать

winFormsWindow.Show(yourWpfWindow.GetWin32Window());
2 голосов
/ 19 октября 2011

Поместите WindowsFormsHost в окно WPF, содержащее пользовательский элемент управления Windows Forms, который является родительским элементом для вашего диалога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...