WPF не включает удобный класс System.Windows.Forms. Класс Screen , но вы все равно можете использовать его свойства для выполнения своей задачи в приложении WinForms.
Предположим, что this означает окно WinForms, а _wpfWindow - это определенная переменная, ссылающаяся на окно WPF в примере ниже (это будет в любом обработчике кода, установленном вами для открытия WPF). Окно, как некоторые обработчик Button.Click):
Screen screen = Screen.FromControl(this);
_wpfWindow.StartupLocation = System.Windows.WindowStartupLocation.Manual;
_wpfWindow.Top = screen.Bounds.Top;
_wpfWindow.Left = screen.Bounds.Left;
_wpfWindow.Show();
Приведенный выше код создает экземпляр окна WPF в верхнем левом углу экрана, содержащего ваше окно WinForms. Я оставлю вам математику, если вы хотите разместить ее в другом месте, например в середине экрана или в «каскадном» стиле ниже и справа от окна WinForms.
Еще один метод, который помещает окно WPF в середину экрана, заключается в простом использовании
_wpfWIndow.StartupLocation = System.Windows.WindowStartupLocation.CenterScreen
Однако это не так гибко, потому что он использует положение мыши, чтобы выяснить, какой экран отображать в окне WPF (и, очевидно, мышь может находиться на другом экране, чем ваше приложение WinForms, если пользователь перемещает его быстро, или вы используете кнопку по умолчанию, или как угодно).
Редактировать: Вот ссылка на документ SDK об использовании InterOp для центрирования окна WPF над окном без WPF. Он в основном делает то, что я описывал в терминах выяснения математики, но правильно позволяет вам установить свойство «Владелец» окна WPF с помощью HWND окна.