Click here to Skip to main content
16,018,264 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
I am trying to create MDI windows in WPF, similar to what we have in Winforms. How can I do this?
Posted
Updated 19-Feb-11 4:23am
v2
Comments
Sandeep Mewara 19-Feb-11 10:25am    
Not clear.

Another very good solution on codeplex is AvalonDock[^] - You'll be able to create a flexible UI similar to the Visual Studio tabbed MDI.

Regards
Espen Harlinn
 
Share this answer
 
Comments
Nish Nishant 19-Feb-11 11:50am    
Voted 5, as I think it adds to the thread and gives the OP an alternate option.
Espen Harlinn 19-Feb-11 12:17pm    
Thank you Nishant!
Abhinav S 19-Feb-11 11:56am    
Agreed with Nish. Good answer.
Espen Harlinn 19-Feb-11 12:18pm    
Thank you Abhinav!
Sergey Alexandrovich Kryukov 19-Feb-11 22:12pm    
A 5, but again, I added my Answer (please see) with advice not to do that.
I think you already agreed with that.
--SA
Technically speaking, Answers by Espen and Nishant are correct.

But do yourself a favor, listen to my good friendly advice: don't do MDI!
There are not so many UI designs that are so inconvenient and cumbersome! Everyone I know (and I know very many computer people, not just developers) hate such user experience and well agree with me. You cannot find any serious company or UI developer using such design.

Instead, use tabbed UI, or dockable (or combined), or controlled by tree/list view TOC-page style, or folding panels or something like that.

—SA
 
Share this answer
 
Comments
Espen Harlinn 20-Feb-11 5:24am    
My 5, I agree, and AvalonDock provides the features required for a tabbed MDI :)
Sergey Alexandrovich Kryukov 20-Feb-11 13:59pm    
Thank you, Espen.
Tabbed MDI is quite possible, better be without MDE part :-)
The problem if more then one-level hierarchy design is practically important. It's more about understanding industrial design then technology. Recently my colleague designed to put another tabbed interface inside a tab page and asked me for a quick fix. It was very confusing, so I replaced inner part with list controlling panel content (TOC-page interface), good for quick fix, but maybe not stilistically consistent. Levels of hierarchy should be visually distinct.
--SA
Abhinav S 20-Feb-11 11:02am    
Good comment! 5.
Sergey Alexandrovich Kryukov 20-Feb-11 14:00pm    
Thank you, Abhinav.
--SA
Wonde Tadesse 24-May-11 21:30pm    
5+
I agree with SA. Trying using dashboard like controls (tab, docks etc).
They allow you to show much more data on the same page.
 
Share this answer
 
Comments
Espen Harlinn 20-Feb-11 11:07am    
AvalonDock does just that - allowing you to create a UI similar to Visual Studio 2010
Sergey Alexandrovich Kryukov 20-Feb-11 13:51pm    
...Which is nothing like MDI.
Do you have good experience with AvalonDock? I was trying to find something for WPF a while ago.
If you do, what's your assessment of its quality?
(Last time I implemented docking UI as based on Weifen Luo docking library (used in SharpDevelop): I had to put my parches, replace one part and ignore some others to put it to work...)

Thank you.
--SA
Espen Harlinn 20-Feb-11 14:37pm    
I used to use it before DevExpress came up with an alternative for WPF and SilverLight - I found it quite useful :)
Sergey Alexandrovich Kryukov 20-Feb-11 14:50pm    
Thank you. So, no major defect, qualify or performance problems?
How about DevExpress, this is all proprietary, commercial close-source, right?
--SA
Wonde Tadesse 24-May-11 21:31pm    
5+
This might interest you:

http://wpfmdi.codeplex.com/[^]
 
Share this answer
 
Comments
Espen Harlinn 19-Feb-11 11:39am    
Good link :)
Sergey Alexandrovich Kryukov 19-Feb-11 22:11pm    
A 5, but again, I added my Answer (please see) with advice not to do that.
I think you already agreed with that.
--SA
Wonde Tadesse 24-May-11 21:29pm    
Interesting. 5+

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