Not that doing such thing is totally impossible. It's more important to understand why MDI feature is not available in WPF.
The real reason is that WPF served as a acceptable excuse for Microsoft to phase out the feature which haunted UI development for years. Microsoft simply tried hard to remove this style, but the requirements of backup compatibility prevented it. They even did not managed to exclude it from
System.Windows.Forms
. Probably, they were afraid that it will result in sneaking this feature in Forms based on native Windows API through P/Invoke. I just speculate.
At the same time, did you ever see not even good UI, but simply minimally professional UI based on MDI? I don't. This style disappeared from the software of minimal quality more than decade ago. You don't want it, too. Did you try to use such IU? It's utterly inconvenient.
The nearest equivalent of MDI is, maybe
TabControl
. It is very simple in implementation and yet pretty convenient. For more advanced behavior, you can use dynamic docking, like in Visual Studio. Here is the project which implements it:
.[
^].
AvalonDock referenced about is pretty robust software use, in particular, in SharpDevelop, open-source .NET API:
http://en.wikipedia.org/wiki/SharpDevelop[
^],
http://www.icsharpcode.net/OpenSource/SD/Default.aspx[
^].
See also:
http://en.wikipedia.org/wiki/Multiple_document_interface#Disadvantages[
^],
How to Create MDI Parent Window in WPF?[
^].
I also explained what to do instead in my past answers:
How to Create MDI Parent Window in WPF? [
Solution 2],
Question on using MDI windows in WPF[
^],
MDIContainer giving error[
^],
How to set child forms maximized, last childform minimized[
^].
—SA