代码之家  ›  专栏  ›  技术社区  ›  Joan Venge

在WPF中是否有类似winforms.show(iwin32window owner)的方法?

  •  1
  • Joan Venge  · 技术社区  · 14 年前

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

    Winforms.Show ( IWin32Window owner )

    一直以来,但由于这个应用程序使用的是WPF窗口,所以我在寻找实现这一点的方法。

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  4
  •   Wilka    14 年前

    上述方法对于从WPF父窗口到WPF子窗口执行此操作是有效的。

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

    如果要使WPF窗口具有WinForm父级,则需要使用WindowInteropHelper类。

    WindowInteropHelper helper = new WindowInteropHelper(wpfWindow);
    helper.Owner = winFormWindow.Handle.
    
        2
  •  1
  •   Alex McBride    14 年前

    是的,您可以设置 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();
        }
    }
    
        3
  •  1
  •   Joan Venge    14 年前

    好的,我找到了 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();