我正在创建一个新的WPF窗口,我想成为另一个现有应用程序的父级。我这样做:
Winforms.Show ( IWin32Window owner )
一直以来,但由于这个应用程序正在使用WPF窗口,我正在寻找一种方法来实现同样的目标。
有什么想法吗?
答案 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();