我有一个WinForm对话框,我想将其Parent属性设置为WPF窗口。 我怎么能这样做?
答案 0 :(得分: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);
}
}
之后你可以写
winFormsWindow.Show(yourWpfWindow.GetWin32Window());
答案 1 :(得分:2)
在WPF窗口中放置一个WindowsFormsHost,其中包含一个用作对话框父窗口的Windows窗体用户控件。