I am worried about the future of native UI technologies on Windows. Traditionally at least the developers of operating systems have eaten their own dogfood and have at least tried to implement well-performing & visually consistent native applications to serve as an example to others. Windows 11 has largely done the opposite. Windows has had minimal but perfectly functional native email and calendar apps at least since Windows 10 (could have been in 8, never used that). Windows 11 originally shipped with those apps, but they were removed in a later update and replaced with laggy webview wrappers that take seconds to start.
From the WinUI community calls, I would assert all new employees have zero Windows experience and management doesn't care to give them proper skills.
Too many questions that any Windows developer would know why the question was being asked, where they either couldn't answer or had puzzled looks on why the questions were being asked in first place.
That is also a reason why now there are Webview2 instances all over the place on Windows 11.
> That is also a reason why now there are Webview2 instances all over the place on Windows 11.
I can't help but feel like there is a happy median between Native UI and WebUI that we haven't quite figured out yet.
In the gaming space there is this library called RMLUI that I have used in anger quite a bit. It gives you something that is shaped a lot like HTML and CSS, but with a built-in data binding layer, and a scripting layer that supports Lua by default but gives you the flexability to roll your own language and API. It also is a much lighter dependency than Chromium and V8.
It's missing a couple of features from vanilla HTML and CSS, but also has a bunch of unique featurea that make it far more useful in other ways. For example, it doesn't have CSS background images, but image decorators are so much more useful. And don't get me started on sprite sheets and theme media queries.
I can't help but think that something similarly shaped and designed more for general desktop use would blow the doors off of electron. My workstation has 32 gigs of RAM and yet it's often a half to three quarters full mostly because of Firefox, Discord, and Visual Studio Code instead of more lightweight apps like Visual Studio 2022.....which sounds crazy when you say it out loud.
The issue I see with Windows 11's UI is they seem to focus too much on pushing new apps / features and not enough focus on catching up some of the older tools within Windows. Take for example the Control Panel which is a reskinned version of the same one that shipped with Windows 7. And I'm sure there are tools buried within the OS that probably date back to the 2000/XP days.
Windows 11 looks great if you just look at the press photos and stay a "very happy path" while using it but as soon as you start digging deeper you realize it's like that meme of Homer Simpson with clips on his back.
I won't be surprised if there is an effort to rewrite MSO in something like Dart and WASM, and make it independent from any native toolkits altogether. Yes, to reproduce all of the Excel power, and make it available everywhere as a premium plan of O365.
Then Windows could pull a ChromeOS. The only place where a native UI is really needed is the lock / login screen; a tiny subset of any current UI toolkit would suffice.
Office is a completely separate team divorced from Windows proper. Unless Office deemed it wise to rewrite their UI, they're not going to do so (and it's a frankenstein of a Win32 UI).
Office on Windows relies heavily on COM and other Win32-only libraries to function.
I can't think of a valid reason to rewrite Office to that extent. They already have Office for the web and Mac Office; while not identical in features, they're often good enough outside of BI scenarios or highly complex Excel work.
Outlook is the lone exception where that team decided to have Outlook for the web, Windows Outlook, and Mac Outlook be identical, so those are getting their rewrites with removal of Win32-specific features where applicable.
If you understood the power struggles within Microsoft and the cut throat office politics, you’d understand. Orgs are fighting orgs trying to over throw one another.
Doesn't windows have like 10 different UI frameworks? Using windows 11 is like going to the natural history museum. Certain apps like MSC still look and feel like windows 2000, then you've got some of the metro influence stuff that is big and bold and blocky colors, and then you have the win11 stuff that is more modern but honestly just looks like lipstick on a pig (right click context menu is a perfect example, it looks modern but has limited functionality and so you do the show more button and yep you guessed it just shows the older style and more functional menu)
I do not think that has ever been true. Features in Office and other Microsoft products were always more advanced than what was possible in the SDKs. Third party UI toolkits would often fill the gaps until MS decided to allow everyone to use those features, often years later. I guess they did it to make Office feel fresh.
> We are being thoughtful about resourcing. This effort is happening alongside other critical responsibilities like security, platform stability, and support for existing products. Our current focus is on foundational work that unlocks value for contributors and increase transparency. We are aligning this work with Microsoft’s broader business priorities to ensure long-term support and impact.
I don't sense any benevolence in their words. They are just pulling off their resources and dumping the framework on the public, hoping passionate losers will contribute.
This is unduly meanspirited. Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
I have zero interest in the Win11 UI, and am even on board with the cynical view that this is purely a bean counter cost savings for MS rather than some benevolent outreach.
But I respect the people that take this on and want to keep it going.
> Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
Not OP but I understood this as "contributing for free to a project owned by a corporation worth more money than you could realistically spend in a lifetime is what makes you a loser".
As has the rest of the world, and we will just put it on the list of UI frameworks Microsoft did not completly implement, fully support or considering "the default".
So we stay stuck with the status quo: There's no official UI for Windows, still.
Thanks for calling it out. I get OPs passionate disdain for Microsoft but one must remember that the world is built on contributions from such people. Take the whole Linux and GNU ecosystem for example. We’d be lost without them.
Maybe the biggest beneficiary will be AI/LLMs - which will become way better at creating Windows UX after this.
More seriously, a desktop UI toolkit is hardly a moat by now, especially a Windows toolkit, Windows having 3-4 very different look-and-feels mixed and shipped with the official distribution.
OTOH security and stability are things that Windows critically depend on to stay on the laptops and desktops in medical, governmental, and financial institutions, and on devices of executives.
This feels like Windows itself is no longer producing enough growth for Microsoft relative to its other efforts. Even the enterprise sales lock-in isn't compelling enough for the cloud/AI-centric future Microsoft envisions. So Microsoft is slowly pulling resources that it can instead invest into Azure and AI and other high-growth business units.
I don't watch Windows too closely. Have there been any other signals of waning investment into Windows? Has Nadella or the other leadership admitted to this?
Hasn't Microsoft also been pulling back from Xbox? IIRC, haven't they been trying to consolidate and use gaming to lionize Windows as a platform? After spending billions on multiple AAA studios? That would seem counter to a Windows pullback strategy. Is this a case of the left hand not talking to the right hand?
Usually I get why companies release their UI frameworks. I've strongly considered using Atlassian's and AWS's frameworks in the past to build web apps because if it's good enough for Jira/AWS, it's probably good enough for my B2B saas app.
But I personally don't know why anyone would reach for this framework. Maybe if you're building a Windows app and you want a very consistent look and for your app to feel "native", but aren't there better options out there for doing this already?
No one in Windows development community cares about WinUI, other than those with sunken costs that bought into the WinRT/UWP dream and now are stuck with a dead technology.
Too many burned bridges since Windows 8 came out.
If anything, this is Microsoft confirmation that they are unwilling to fix all the broken issues, and hoping the community will somehow still care.
Very true. We just developed a brand new LOB desktop app and settled on sticking with WPF. WinUI has been dead for years imo.
On a side note, I still love WPF after working in it for 10 years. Maybe it's just familiarity, and it's a little verbose at times, but man it's a great framework when you know that you're doing.
DevExpress supported WinUI for a little while but decided to abandon support.
One of the biggest problems with WinUI compared to WPF is that DependencyProroperty is implemented as native code, so for .NET developers, there is a huge performance penalty getting or setting any property on control.
Honestly at this point who would seriously use any Microsoft UI framework? They've abandoned 100% of their previous UI frameworks unfinished when they get distracted by a new, shinier framework.
Why use a busted incomplete framework missing basic features when there's entire ecosystems of open source cross-platform frameworks being actively maintained and which actually have all the features you need?
Really this is just another UWP destined to be forgotten and scorned.
I already lost count how many UI frameworks are in windows. It looks like complete chaos and mess.
I really wonder what they expect from open-sourcing it. Just to pretend how open they are? Or is there any real benefit to developers who target windows?
WinUI is an evolution of UWP which is an evolution of WinRT. WinUI has been around for years.
MAUI is not exactly a competing product and is more about enabling cross platform UI development. Different intent.
WinUI is actually ok tech. It’s evolved over the years through a few iterations, now on WinUI 3.
Im mostly with you though. Until they rebuild the entire OS in it, including all of the administrative controls and tools, I don’t trust the longevity.
They already do, though. The big UI refresh in Win10 is all XAML, and the new Win11 taskbar (the one we all hate) is now a totally normal XAML app.
WinUI 3's big changes (to get a 3.0 version number) is not with the XAML stack itself, but its new ability to be called by unmanaged apps as a normal UI toolkit, so it can finally be used by all apps. No more using Shell UI like we're writing Win 3.1 apps.
And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.
Also, fun fact: The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it. Rewriting the taskbar made sense, GETTING RID OF SMALL MODE DID NOT, GODDAMNIT MICROSOFT.
They probably started something new and shiny (Now with AI!) and want to get rid of the old baggage without causing too much of a user revolt (all dozens of them) ;)
I genuinely thought a lot of these sibling comments were satire at first! The acronyms, the lengthy and confused explanations of versions, frameworks etc:
> WinUI is an evolution of UWP which is an evolution of WinRT
There are three UI frameworks in Windows, and only two actively used/developed.
All the other "countless" frameworks are iterations of one of two lines: Win32/Native (WinAPI, MFC, WinRT, WinUI3, etc) and WPF/Managed (Avalon, WinUI2-3, etc). WinUI3 exists to bridge the gap.
You could also go for wxWidgets as it is kinda MFC-y but better and cross-platform, though like MFC you can combine it with Win32 API code (almost) seamlessly.
Or go with Qt, though that doesn't use native controls.
Maybe people can cannibalize some of the rendering code and extrapolate the controls to a better class library than they already have. Like a kind of winforms but using modern rendering APIs. I know you already can create such controls but they often end up being very verbose and just look like xaml but in C#
I kind of wish Microsoft would just continue development of WPF. I've used it for years for various projects, and there is a learning curve but I've since enjoyed working with it. XAML, data bindings, ViewModels... all of it I actually like. But, WPF needs a few improvements to really make it perfect. I tried several of Microsoft's newer frameworks and the open source ones (Avalonia, Uno), but I either couldn't get the sample projects to even build successfully on my machine, or I never got comfortable with development workflow, and went back to what I know.
My big idea to fix WPF is to rebuild the data binding system to use the .NET compile-time code generation feature instead of run-time reflection. I think that would solve a lot of problems. For one, projects could do an actual AOT build of their applications (right now, you either need to rely on an installed .NET runtime or "publish" the project with a lot of .NET libraries included for self-extract, bloating the final file size). Code generation would probably improve performance quite a bit too, maybe open up the possibility to compile for cross-platform, introduce type safety for XAML bindings (rather than getting vague runtime binding errors), remove the need for so much class scaffolding, etc... I've thought about starting an open source project to do it myself, but seems like a pretty big task and I would essentially be starting a project to help with my other project which I already don't have enough time to work on...
Your second paragraph sounds like you're describing Avalonia. Avalonia has AOT, compile-time binding errors and cross-platform support. Maybe there have been some updates since you last tried it? I'm not very familiar with Avalonia or WPF though so maybe there's more to it than that.
Thanks, yes I'll probably have to give it another try some day. I might be confusing Avalonia and Uno, but I think I first attempted it a couple years ago, and then again last year. I remember spending a whole weekend trying to get it running but wasn't having success. Also, I was a bit turned off by how heavy the development environment was. I had to download and install a tool, then that installed more build tools and packages, and then there was also a "recommended" VS Code extension. With WPF, I've gotten used to writing XAML without a designer, so I can get by with just VSCode, the C# extension, and the .NET CLI.
It would also allow for assembly trimming, which would be a huge boon if you are trying to do a self contained deployment. Right now you either do framework dependant or have like a 200MB+ deployment.
Last I evaluated it WinUI3 was a terrible developer experience. The application had to be literally installed on the system to even debug it, which means you end up with a large number of useless start menu entries, not to mention registry entries and such. Another thing was that the example programs crashed when I clicked on a button.
All I want is something simple to work with to make applications for Windows, and so far I'm still using Win32 with WTL.
I want to be able to create self-contained GUI application that are relatively small and can be just copied and run on another computer. Installation should be an option, not a requirement. From my evaluation, WinUI3 doesn't offer that.
I did try to develop an unpackaged test application but I gave up trying to implement it and just went with Win32 instead as I wanted make something rather than messing around with a UI framework.
These days if I were to switch from Win32 I might try some custom rendered framework which a lot of apps seem to use, or Qt.
I hope this leads to having a native vertical taskbar, which has been absent in W11 despite being a taskbar feature dating back as early as Windows 98.
Third-party tools have tried to reimplement it but it's either been by bastardizing the native W11 horizontal taskbar to be vertical (eg: Windhawk) or just restoring the old W10 taskbar code (eg: StartAllBack).
How will making the UI framework open source lead to taskbar changes? For third party contributions in this area, they need to open source the taskbar, not the UI framework.
> Nit-pick: Windows 95, actually. The vertical taskbar was an option in its very first version.
Yes, but this was when computer were less capable. Now, you are not able to choose colors or fonts, the taskbar is fixed and the programs need at least 2 seconds to start.
Terrific evolution.
The Start Menu is apparently a React Native app, so I'm going to hazard a guess and just assume WinUI is built on top of React, and that the Start Menu at least is thus indeed built with WinUI. But it's also clear that some other parts aren't, so who knows what's what. I'm sure there are folks who spent time reverse engineering it all though who do.
For Windows UIs I've been getting into Win32/GDI/DirectDraw/etc.
Tools like CsWin32 and modern C# (ref returns) make working with these APIs a lot more approachable today. It used to be the case that you had to create a nasty C++ project to do any of this. Now you can just list the methods you need access to in your nativemethods.txt file and the codegen takes care of the rest.
Win32 is a lot lower level than other things you'd typically consider to be a "UI framework", but the important tradeoff is that it is also a lot harder for Microsoft to remove or screw with in any meaningful way. I cannot come up with something that has been more stable than these APIs. The web doesn't even come close if we are looking at the same timescales.
You still need C++ in many places, because of the COM rulez attitude within Windows team.
Windows Runtime Components was a lost opportunity to level up the play field for .NET.
As such, if you want to do something like a shell extension, or context menu extension, it is C++ as always, or having your little C++ stub that calls out into a .NET process.
Yeah this entire discussion about these high level framework would be cooler to discuss the lower level APIs. As far as I know, the entirety of Windows rendering stack is built on either GDI or DirectX? With Win32 even being built on GDI?
It would be much cooler to discuss building a ground-up Windows UI stack as close to metal as possible which I guess would necessarily be using DirectX...
I think windows needs a community effort to create an actually good framework for native development on windows. Unfortunately I just dont think such a community is big enough.
Too many questions that any Windows developer would know why the question was being asked, where they either couldn't answer or had puzzled looks on why the questions were being asked in first place.
That is also a reason why now there are Webview2 instances all over the place on Windows 11.
I can't help but feel like there is a happy median between Native UI and WebUI that we haven't quite figured out yet.
In the gaming space there is this library called RMLUI that I have used in anger quite a bit. It gives you something that is shaped a lot like HTML and CSS, but with a built-in data binding layer, and a scripting layer that supports Lua by default but gives you the flexability to roll your own language and API. It also is a much lighter dependency than Chromium and V8.
It's missing a couple of features from vanilla HTML and CSS, but also has a bunch of unique featurea that make it far more useful in other ways. For example, it doesn't have CSS background images, but image decorators are so much more useful. And don't get me started on sprite sheets and theme media queries.
I can't help but think that something similarly shaped and designed more for general desktop use would blow the doors off of electron. My workstation has 32 gigs of RAM and yet it's often a half to three quarters full mostly because of Firefox, Discord, and Visual Studio Code instead of more lightweight apps like Visual Studio 2022.....which sounds crazy when you say it out loud.
swift ui apps have some webkit views like the app store, music app etc
Windows 11 looks great if you just look at the press photos and stay a "very happy path" while using it but as soon as you start digging deeper you realize it's like that meme of Homer Simpson with clips on his back.
https://youtu.be/r549Zn74Xg8
in fairness rewrite it from scratch is literally easier than supporting compability since dawn of times but they forced to do it
Then Windows could pull a ChromeOS. The only place where a native UI is really needed is the lock / login screen; a tiny subset of any current UI toolkit would suffice.
Office on Windows relies heavily on COM and other Win32-only libraries to function.
I can't think of a valid reason to rewrite Office to that extent. They already have Office for the web and Mac Office; while not identical in features, they're often good enough outside of BI scenarios or highly complex Excel work.
Outlook is the lone exception where that team decided to have Outlook for the web, Windows Outlook, and Mac Outlook be identical, so those are getting their rewrites with removal of Win32-specific features where applicable.
That's most old large orgs who have been around for ~5 decades. Nothing special about Microsoft.
What a cluster.
> We are being thoughtful about resourcing. This effort is happening alongside other critical responsibilities like security, platform stability, and support for existing products. Our current focus is on foundational work that unlocks value for contributors and increase transparency. We are aligning this work with Microsoft’s broader business priorities to ensure long-term support and impact.
I don't sense any benevolence in their words. They are just pulling off their resources and dumping the framework on the public, hoping passionate losers will contribute.
This is unduly meanspirited. Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
I have zero interest in the Win11 UI, and am even on board with the cynical view that this is purely a bean counter cost savings for MS rather than some benevolent outreach.
But I respect the people that take this on and want to keep it going.
Not OP but I understood this as "contributing for free to a project owned by a corporation worth more money than you could realistically spend in a lifetime is what makes you a loser".
As has the rest of the world, and we will just put it on the list of UI frameworks Microsoft did not completly implement, fully support or considering "the default".
So we stay stuck with the status quo: There's no official UI for Windows, still.
Maybe the biggest beneficiary will be AI/LLMs - which will become way better at creating Windows UX after this.
No it's not? It's accurate.
>Your passion projects are not even considered to probably the vast majority of the world; that doesn't make you a loser.
A Windows UI project is not a "passion project" and the only """person""" that really benefits here is Microsoft.
>But I respect the people that take this on and want to keep it going.
Contribute to something else that doesn't only help the bottom line of a mega global corp?
Why are you defending this?
More seriously, a desktop UI toolkit is hardly a moat by now, especially a Windows toolkit, Windows having 3-4 very different look-and-feels mixed and shipped with the official distribution.
OTOH security and stability are things that Windows critically depend on to stay on the laptops and desktops in medical, governmental, and financial institutions, and on devices of executives.
I don't watch Windows too closely. Have there been any other signals of waning investment into Windows? Has Nadella or the other leadership admitted to this?
Hasn't Microsoft also been pulling back from Xbox? IIRC, haven't they been trying to consolidate and use gaming to lionize Windows as a platform? After spending billions on multiple AAA studios? That would seem counter to a Windows pullback strategy. Is this a case of the left hand not talking to the right hand?
But I personally don't know why anyone would reach for this framework. Maybe if you're building a Windows app and you want a very consistent look and for your app to feel "native", but aren't there better options out there for doing this already?
Offloading the work to their victims. Maybe they will even make it usable again.
Too many burned bridges since Windows 8 came out.
If anything, this is Microsoft confirmation that they are unwilling to fix all the broken issues, and hoping the community will somehow still care.
WinForms and WPF are currently the only viable frameworks for Line of Business application. I have yet to see a WinUI3 application in the wild.
On a side note, I still love WPF after working in it for 10 years. Maybe it's just familiarity, and it's a little verbose at times, but man it's a great framework when you know that you're doing.
One of the biggest problems with WinUI compared to WPF is that DependencyProroperty is implemented as native code, so for .NET developers, there is a huge performance penalty getting or setting any property on control.
https://github.com/microsoft/microsoft-ui-xaml/issues/1633#i...
Deleted Comment
Why use a busted incomplete framework missing basic features when there's entire ecosystems of open source cross-platform frameworks being actively maintained and which actually have all the features you need?
Really this is just another UWP destined to be forgotten and scorned.
I really wonder what they expect from open-sourcing it. Just to pretend how open they are? Or is there any real benefit to developers who target windows?
MAUI is not exactly a competing product and is more about enabling cross platform UI development. Different intent.
WinUI is actually ok tech. It’s evolved over the years through a few iterations, now on WinUI 3.
Im mostly with you though. Until they rebuild the entire OS in it, including all of the administrative controls and tools, I don’t trust the longevity.
WinUI 3's big changes (to get a 3.0 version number) is not with the XAML stack itself, but its new ability to be called by unmanaged apps as a normal UI toolkit, so it can finally be used by all apps. No more using Shell UI like we're writing Win 3.1 apps.
And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.
Also, fun fact: The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it. Rewriting the taskbar made sense, GETTING RID OF SMALL MODE DID NOT, GODDAMNIT MICROSOFT.
I don’t trust WinUI at all.
I was surprised, when I spoke to a former colleague, to find that an internal tool I wrote 25 years ago is still being maintained. Win32 as well.
> WinUI is an evolution of UWP which is an evolution of WinRT
> WinUI 3
> WinUI 3 still supports WinRT
> XAML
> Shell UI
> Avalon
> WPF
> WPF = WinUI 1.0
> Project Reunion
> UWP
> Win2D
> ATL/MFC
> Just go for MFC FTW
> wxWidgets as it is kinda MFC-y
> Or go with Qt
> MFC/Win32 + XAML Islands
All the other "countless" frameworks are iterations of one of two lines: Win32/Native (WinAPI, MFC, WinRT, WinUI3, etc) and WPF/Managed (Avalon, WinUI2-3, etc). WinUI3 exists to bridge the gap.
Or go with Qt, though that doesn't use native controls.
This just sounds like another Microsoft UI stack
My big idea to fix WPF is to rebuild the data binding system to use the .NET compile-time code generation feature instead of run-time reflection. I think that would solve a lot of problems. For one, projects could do an actual AOT build of their applications (right now, you either need to rely on an installed .NET runtime or "publish" the project with a lot of .NET libraries included for self-extract, bloating the final file size). Code generation would probably improve performance quite a bit too, maybe open up the possibility to compile for cross-platform, introduce type safety for XAML bindings (rather than getting vague runtime binding errors), remove the need for so much class scaffolding, etc... I've thought about starting an open source project to do it myself, but seems like a pretty big task and I would essentially be starting a project to help with my other project which I already don't have enough time to work on...
[0]: https://docs.avaloniaui.net/docs/basics/data/data-binding/co...
[1]: https://github.com/kekekeks/XamlX
All I want is something simple to work with to make applications for Windows, and so far I'm still using Win32 with WTL.
I think that's because you chose "packaged" application, these apps need to be installed so that capabilities are handled correctly.
To be fair, macOS has the same issue, although they won't show in Launchpad, they still can be indexed by Spotlight.
These days if I were to switch from Win32 I might try some custom rendered framework which a lot of apps seem to use, or Qt.
Third-party tools have tried to reimplement it but it's either been by bastardizing the native W11 horizontal taskbar to be vertical (eg: Windhawk) or just restoring the old W10 taskbar code (eg: StartAllBack).
Yes, but this was when computer were less capable. Now, you are not able to choose colors or fonts, the taskbar is fixed and the programs need at least 2 seconds to start. Terrific evolution.
The news being discussed is not about explorer being open sourced.
Tools like CsWin32 and modern C# (ref returns) make working with these APIs a lot more approachable today. It used to be the case that you had to create a nasty C++ project to do any of this. Now you can just list the methods you need access to in your nativemethods.txt file and the codegen takes care of the rest.
Win32 is a lot lower level than other things you'd typically consider to be a "UI framework", but the important tradeoff is that it is also a lot harder for Microsoft to remove or screw with in any meaningful way. I cannot come up with something that has been more stable than these APIs. The web doesn't even come close if we are looking at the same timescales.
Windows Runtime Components was a lost opportunity to level up the play field for .NET.
As such, if you want to do something like a shell extension, or context menu extension, it is C++ as always, or having your little C++ stub that calls out into a .NET process.
From a user's perspective, Win32 is high level. No other Windows toolkit is able to draw buttons or scrollbars properly.
It would be much cooler to discuss building a ground-up Windows UI stack as close to metal as possible which I guess would necessarily be using DirectX...