在WPF中是否有类似Winforms.Show(IWin32Window所有者)的方法?

时间:2010-11-08 21:20:55

标签: c# .net wpf winforms

我正在创建一个新的WPF窗口,我想成为另一个现有应用程序的父级。我这样做:

Winforms.Show ( IWin32Window owner )

一直以来,但由于这个应用程序正在使用WPF窗口,我正在寻找一种方法来实现同样的目标。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

上述方法对于从WPF父窗口到WPF子窗口

执行此操作是有效的
Window wpfWindow = new Window(); 
wpfWindow.Owner = this; 

如果你想拥有一个带Winform父类的WPF窗口,你需要使用WindowInteropHelper类。

WindowInteropHelper helper = new WindowInteropHelper(wpfWindow);
helper.Owner = winFormWindow.Handle.

答案 1 :(得分:1)

是的,您可以设置窗口的Owner属性。

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();
    }
}

答案 2 :(得分:1)

好的,我找到了answer

   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();