(效果不是很好,仅供参考)
第一:新建一个类(Class)
Win32Native.cs
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WpfApplication1
{
public class Win32Native
{
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetParent")]
public extern static IntPtr SetParent(IntPtr childPtr, IntPtr parentPtr);
}
}
第二:新建两个窗体:
Window1.xaml
Window2.xaml
第三:Window1.xaml.cs中添加引用
using System.Windows.Interop;
第四:在Window1窗体中放上一个Button1
其事件如下:
private void button1_Click(object sender, RoutedEventArgs e)
{
Window2 w2 = new Window2();
w2.Show();
WindowInteropHelper parentHelper = new WindowInteropHelper(this);
WindowInteropHelper childHelper = new WindowInteropHelper(w2);
Win32Native.SetParent(childHelper.Handle, parentHelper.Handle);
}
WinForms实现方法较简单一些,
private void button1_Click(object sender, RoutedEventArgs e)
{
Window2 w2 = new Window2();
w2.MdiParent = this;
w2.Show();
WPF与WinForms实现MDI窗体方法
本文介绍了如何在WPF应用中实现MDI(Multiple Document Interface)窗体。通过创建一个名为Win32Native的类,利用DllImport导入user32.dll库的SetParent方法,将Window2设置为Window1的子窗口。详细步骤包括创建Win32Native类,新建Window1和Window2两个窗体,在Window1中放置按钮并绑定事件,实现子窗口的定位。此外,对比了WinForms中实现MDI窗体的简单方法。
1万+

被折叠的 条评论
为什么被折叠?



