Reputation: 1
I'm not sure that's the right way to say it, but what I want is to for my wpf main window to have it's own bar that will behave like a taskbar, and any children windows that will be open from the main one will be placed in that bar in a similar way like the taskbar works in windows - a rectangle showing the window name for example, on click it opens you the window, if you click minimize it will minimize it to the bar, and with some option, to get it out of the main window and move it to the real windows taskbar, with another option for putting it back in. The problem is I don't know if this is even possible, and I don't know the name of such an element, so if anyone can give me any tips I'll be really thankful.
Upvotes: 0
Views: 136
Reputation: 30498
I worked on an application years ago (.NET 3.0: first WPF release!) that did exactly that. We ran into a lot of issues getting it to work, but we were pretty successful in the end. One thing we didn't support was moving it to the Windows taskbar.
The best option would be to set an attached property on each Window
. This would register a Window
with your custom taskbar, so if you wanted to move the Window
out of your custom bar, you'd set the property to false. Setting the property to true would add it to the collection of application windows, as well as register event handlers to track the state of the Window
.
One of the major pain points for us was getting the Window
animations correct. If you're not running in XP, this probably less of an issue, as the animations in Vista (or is it 7?) and above aren't really showing where a Window
is going on minimize. In the end, we had to do a lot of low level Win32 (p/Invoke) work for this.
Upvotes: 1
Reputation: 1857
Take a look at AvalonDock and WPF MDI:
http://avalondock.codeplex.com/
Upvotes: 0