Click here to Skip to main content
15,892,737 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
how to make mdi form in the wpf?give some example ?how to run the mdi parent instead of widow.xaml?
Posted

WPF makes use of navigation[^]. This is a different approach from form-based mdi controls.

If you still don't want to use navigation, have a look at this video on the docking control - http://www.youtube.com/watch?v=bLSvB9rbHO0[^].
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 20-Jan-13 23:55pm    
Navigation is not the only WPF style, rather, it's optional and not "default". Having it is per se no a convincing argument against MDI. As to DevExpress, as far as I understand, this is a commercial product.

At the same time, the options without using 3rd-party, or using open-source are quite good. Please see my answer.
—SA
Hi,

First thing, You can't do the MDI in WPF.

Second thing, there are lots of new approach in WPF and more interesting also. You must have seen all Internet Browser uses Tab approach. And these days it is well appreciated.

You can see the following link for start.

Tabbed MDI in WPF[^]


RKS
 
Share this answer
 
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
 
Share this answer
 
Comments
Abhinav S 21-Jan-13 0:49am    
5. However, there is no equivalent of MDI available in WPF. This was my point.
Sergey Alexandrovich Kryukov 21-Jan-13 0:52am    
Thank you, Abhinav.
—SA
You can use my MDI Container for WPF solution. Documentation isn't full, but there is a blog post about and a sample app.

Link: MDIContainer
 
Share this answer
 
In my opinon, MDI and TDI has their own advantages. Also different user has different favorite. So as a software company, you should give users more flexible and choices. All applications used LinsUIWPF Suite(third party library) will automatically support both MDI and TDI. The user can switch bewteen two style during run time.
References:
http://goldcing.blogspot.com/2012/07/introduction-to-linsuiwpf-suite.html[^]

http://goldcing.blogspot.com/2014/01/how-to-switch-between-mdi-and-tdi.html[^]
 
Share this answer
 
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900