将WPF窗口作为父级的Winform对话框

Mik*_*ogh 14 wpf winforms

我有一个WinForm对话框,我想将其Parent属性设置为WPF窗口.我怎样才能做到这一点?

nev*_*ind 7

考虑将参数传递给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);
  }
}
Run Code Online (Sandbox Code Playgroud)

之后你就可以写了

winFormsWindow.Show(yourWpfWindow.GetWin32Window());
Run Code Online (Sandbox Code Playgroud)