-
Notifications
You must be signed in to change notification settings - Fork 688
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: New DockManager / Dockable Windows Control #668
Comments
Would this control need a DockablePanel control which contains XAML that fills the space, and then that panel handles the dragging and triggers the hint icons on the DockManager panel which contains the app's UI? |
@mdtauk Great point. I think there will need to be a few supporting controls, as well. Similar to TabItem under the TabControl. |
Bringing @harvinders proposal's description over here: Proposal: Dockable WindowsSummaryAdd support for dockable windows that can be docked to a window like what we have in Visual Studio Rationale
Scope
|
Related feature request - #1080 We definitely need additional innovation in this space but won't be able to begin implementation until after WinUI 3. |
That is completely understandable. I'm very glad the team is considering this control. Look forward to WinUI 3.0 and future goodness 😄 |
Both WinForms (dockpanelsuite) and WPF (AvalonDock) have widely used third-party controls for docking. Another good example would be UWP Docking Control by Syncfusion. Having a control like this would make easier to migrate apps to WinUI. |
Is there any progress on this feature? It seems like there hasn't been update in over a year and I would say that this seems like a pretty critical feature is Microsoft are truly aiming to make WinUI 3 the new default UI for Windows apps. Right now I am in the early stages of writing some graphical profiling software and evaluating what UI technologies are available out there, and when it comes to WinUI 3 not having an easy method of moving panels/dockable windows between areas to match the users needs seems like a huge oversight. I asked about this feature in #4784 and was told to put forward a feature request but it seems like the request is already here, it's just not made any progress and has not been addressed in two of last years community calls when brought up. They way I see it is that if I wanted to have what most would consider a pretty standard feature in software tools I would be best off using some combination of SDL2/Dear Imgui or a third party library for WPF/WinForms. This means that I wouldn't be able to take advantage of other WinUI 3 features which is a shame as for the most part WinUI 3 seems like a solid UI framework. Is this feature still in consideration, or would it be something that is likely to be left to third parties again as with dockpanelsuite and AvalonDock? |
Well that's a bummer. This means we again have to go through the hassle of:
Name one other UI platform where you immediately need to look for commercial alternatives! iOS? Android? 😆 "Now introducing WinUI 4 for Android. Scroll viewer? Nah, it's on our todo-list." |
Just to keep the ball rolling on the fact that this is an absolutely essential feature. I've been keeping an eye on the whole WinUI3 / Windows App SDK for a while and in particular docking windows / mdi. This is an absolutely essential feature for desktop productivity apps and any tool I have been considering writing of late. Quite literally every program I use for development on a daily basis uses this interface paradigm and it is absolutely essential. Have I mentioned it's absolutely essential? I think I did. For me, quite honestly, until there is SOME kind of docking / mdi type support (even 3rd party) it really does just feel like a toy for creating mobile-phone-wannabe-apps. MFC, some 30 years on, is still more attractive for those wanting to develop C++ based productivity apps on Windows. I'm not interested in moving to C# just for the UI only to jump through all the hoops required to then leverage the C++ codebase I require under the hood. WinUI3 is nearly the thing of my dreams, finally bringing modern Windows GUI support back to C++. Make it happen. :) |
Commenting to keep this alive - this is absolutely essential for us to consider moving off WPF. |
Any update on this? I have a new project for which this is required. |
+1 |
I definitely want to upvote this feature request. Docking panels is an integral part of my MFC desktop application that I want to convert to WinUI3. |
Same things. We also want to convert WPF to WinUI3. |
Please implement this feature. WinUI3 looks very promising, as UWP looked back in the day. But both are lacking the docking panes / MDF feature which is a bummer and is the sole reason not to move over from WPF. A true, modern desktop application not only has to look good but also needs a lot of flexibility for the user to justify the need of a desktop application for him in the first place. There are a lot of business applications out there that need this kind of flexibility. |
@fl0aty for enterprise apps I cannot upvote your comment enough. It's basically a showstopper not having this for us. |
I moved to this since waiting is waste of time from my experience. This is C++ though its easy. https://github.com/sukesh-ak/ImGui-GLFW-OpenGL3 |
ImGui is a completely different UI paradigm, though, it's not always appropriate. The lack of support for this is totally bizarre to me. The only real option currently is having a C# front end with C++ back end, or using QT. |
There is a C# option as a wrapper too After WinForms Microsoft UI frameworks have not been a stable reliable platform. Have gone through the entire rollercoaster ride of Silverlight,WPF,UWP now WinUI. MAUI too since I need multi-platform support. |
Another random revisit of this topic as I consider what UI API might be useful again in C++ land. And nothing appears to have changed on this absolutely essential feature. 🙄 It might be time to bite the bullet and use Qt… or just dig out the MFC libraries again. |
came in 2023, seeing posts over years and still no progress really scares me to full dive to WinUi. Hope this feature will be out one day... Having Official solution is always my preference over opensource or 3rd party solution. For now perhaps going back to win32 is the answer. |
I am puzzled by the lack of evolution of the Windows UI development stack. WPF and WinUI seemed promising but more difficult to use than WinForms and MFC and did not have some of the critical features needed for rich business style applications. I kind of lost interest in Windows development for that reason. I'd love to see some sort of roadmap for Windows UI enrichment. |
Ditto carmangary! What the heck? Maybe I will move to QT. Can QT host a Win32 window? |
I honestly think the WinUI 3 tab control should be generalized to this. AvalonDock supports simply having them all fill their container as layered documents and then it basically becomes a tab control with tabs to change views. Then you can tear off a tab and dock them side-by-side, collapse the panes, etc. The obvious benefit of this is that all WinUI apps with tabs would automatically gain docking support, although this could of course be opt-in on the control e.g. IsDockable so that grandfathered apps are still in control of the possible configurations. We're in both this case and a tab control really only discussing interactive management of multiple documents within a container. I agree with others that powerful management of documents within a container is a common enough use case that WinUI ought to support it with dedicated logic. |
Its gone already 5 years since the proposal... dont feel like any cares.... |
Seems as though Microsoft stopped caring about desktop developers, at least. Azure is their cash cow now. |
Now, three years later, I have to say that I no longer care about We spent a few weeks trying to migrate a tiny version of our Maybe in another three years... |
Starting with .NET 9, WPF will have built-in support for good Windows 11 styling and controls, so a more sensible way forward here for complex LOB applications etc. might be WPF with AvalonDock or a similar mature docking system. You can get decent Windows 11 ribbons via FluentRibbon 11.0 onwards (in alpha as I'm writing this), or Coho.UI. If you depend on .NET versions older than .NET 9, you can use WPFUI for the Windows 11 styling which supports down to .NET Framework 4.6.2 and is in fact the library that .NET 9 adopted and integrated. |
The whole point for me is that WinUI naively supports C++. If I wanted to jump through hoops and use C#, WPF, etc, then that's always been there. If you have a codebase you want to leverage in C++, it's far nicer to have the option to keep everything in C++. MFC or QT are really the only sensible solutions to do this. It really is insane, imo, that this has been left to stagnate as it has. I guess using C++ is not something the masses do these days? |
I agree with the above. I have and still support a multimedia application written in C++ using MFC that has docking tabs. I spent a lot of time porting it from C# due to C# being a pain to deal with DirectX and also because it was so easily hackable due to ease of decompilation, even when obfuscated. There was a noteable increase in application performance when moving to C++. C# is cute and capable for a lot of stuff but it is not a good option for the type of development I want to do. I'm not asking for much. Just have WinUI match the level of capabilities that MFC had decades ago and improve upon it. |
This hits the point home for me. Can we just have the same level of features we had 20 years ago, please? |
VS2022 version 17.10.4 - Tried to create Blank App, C++ WinUI 3 in Desktop. VS Created 911 files in 356 folders. Tried to build and had 8 errors. Good grief. |
I don't think so. Because Wpf has a lot of history problems.Such as using too many reflections, therefore is not able to support AOT. Meanwhile wpf is still a DiectX 9 thing, when Winui3 is based on DirectX 12, and Avalonia 11+ or C++ QT is based on Vulkan. |
Summary
It would be nice to have a new DockManager control similar to how Visual Studio and AvalonDock works.
Rationale
This type of control can be used for many LOB-type apps and has been missing as a 1st-class control for some time. With my limited knowledge of where WinUI is headed, it does seem like a control that would be helpful.
The text was updated successfully, but these errors were encountered: