Есть ли такой метод, как Winforms.Show (владелец IWin32Window) в WPF? - PullRequest
1 голос
/ 09 ноября 2010

Я создаю новое окно WPF, которое я хочу добавить в другое существующее приложение.Я делаю это с:

Winforms.Show (владелец IWin32Window)

все время, но поскольку это приложение использует окно WPF, яспособ достичь того же.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 09 ноября 2010

Указанный выше способ действителен для этого из родительского окна WPF в дочернее окно WPF

Window wpfWindow = new Window(); 
wpfWindow.Owner = this; 

Если вы хотите иметь окна WPF с родительским элементом Winform, вам нужно использовать класс WindowInteropHelper.

WindowInteropHelper helper = new WindowInteropHelper(wpfWindow);
helper.Owner = winFormWindow.Handle.
1 голос
/ 09 ноября 2010

Хорошо, я нашел ответ .

   MyWpfDialog dialog = new MyWpfDialog();

   //remember, this is WinForms UserControl and its Handle property is
   //actually IntPtr containing Win32 HWND.
   new System.Windows.Interop.WindowInteropHelper(dialog).Owner = this.Handle;
   dialog.ShowDialog();
1 голос
/ 09 ноября 2010

Да, вы можете установить свойство Владелец окна.

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ShowChildWindow()
    {
        MyChildWindow window = new MyChildWindow();
        window.Owner = this; // Set owner of child window.
        window.Show();
    }
}
...