У меня есть диалог WinForm, и я хочу установить его свойство Parent в окно WPF. Как я могу это сделать?
Диалог Winform с окном WPF как родительский
Ответ 1
Рассмотрим параметр передачи в 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
Поместите WindowsFormsHost в окно WPF, содержащее пользовательский элемент Windows Forms, который служит родителем для вашего диалога.