6 ms·
Without more details, this is the way to get the most native Windows 11 look and feel: https://learn.microsoft.com/en-us/windows/apps/winui/winui3/ https://lea
by fassssst 3y ago
Without more details, this is the way to get the most native Windows 11 look and feel:
https://learn.microsoft.com/en-us/windows/apps/winui/winui3/ https://learn.microsoft.com/en-us/windows/apps/winui/winui3/
Disclosure: I work at Microsoft on a team that works on visual look and feel for Windows.
- jwells89 3y agoI tried writing an app using WinUI a few months ago and the widgets that it has are decent, but there are some major gaps compared to older Windows UI frameworks and Cocoa. The one that stands out most is its lack of a proper tableview/datagrid (think NSTableView in Cocoa). I know about the community widget but it doesn’t feel right to have to pull in a third party library for something so elementary. The look and feel is great though, Win11 is a nice step up from 8/10 in that department. So good to have depth, curves, transparency, etc back again.
- rossy 3y agoIt's a shame that, unlike with Win32, using WinUI places pretty harsh restrictions on which programming languages and environments you can use. Only C# and C++ are supported, the latter only with Microsoft compilers. For everything else, including Rust[1], Python and MinGW C/C++, there is no answer for OP's question, and the effect of this on the visual consistency of the Windows desktop is obvious - there is none. Every third-party app uses a different toolkit with a different look and feel, because the library providing the standard look and feel simply isn't available to the majority of developers. [1]: https://github.com/microsoft/windows-rs/pull/1836 https://github.com/microsoft/windows-rs/pull/1836
- technion 3y agoThat's horridly confusing given MS has a Rust crate "Windows" has a "UI" Module that I guess is something different to WinUI. https://microsoft.github.io/windows-docs-rs/doc/windows/UI/index.html https://microsoft.github.io/windows-docs-rs/doc/windows/UI/i...
- lowleveldesign 3y agoNot to mention that WinUI is not supported on Windows Server. Therefore, if you need to deploy to server and desktop environments, it's better to stay with WinApi (WinForms) or WPF.
- pjc50 3y agoIt isn't? That seems cripplingly stupid. WinForms is very old and doesn't do DPI, but one thing I like about it is that it always works.
- vintagedave 3y agoIt's really hard to use with Win32 / the traditional Windows API too. Often APIs aren't exposed or documented -- consider the APIs to turn on the Acrylic or Mica looks in a window background, for example. There are a few Github repos that show how to do it but using reverse engineered APIs or constants. By comparison when Windows 7 was released, enabling glass was documented and usable from any language or framework. It's also not currently possible as far as I know to mix new controls and old controls in one window very easily - there are islands, but they seem on the macro scale (from when I last looked.) This makes updating apps difficult: changing a UI is an all or nothing upgrade per window. You can't just easily add WinUI to an existing WinAPI window in an app using a non-C#/Microsoft language. So people who have existing apps or use a non-MS dev environment are faced with enormous barriers. The ties to Microsoft languages and IDEs are also troubling. It's not technically MS-only, but it is _effectively_ MS-only. This is my personal account (I don't have a professional HN account) but I work at a company that produces a dev environment and IDE, and we run into these issues. I find that searching for my HN username and LinkedIn ("vintagedave LinkedIn") will likely let any reader (the OP, any reader, or u/ fassssst if you'd like to get in touch?) find me, and I'd be happy to speak on a personal or potentially professional level about issues with WinUI and what could be done to make it more accessible across dev environments and more easy to convert to or upgrade to.
- grumblingdev 3y ago> Every third-party app uses a different toolkit with a different look and feel This always infuriated me on Windows, and a big reason I moved to macOS. This is a great read: https://arstechnica.com/features/2012/10/windows-8-and-winrt-everything-old-is-new-again/ https://arstechnica.com/features/2012/10/windows-8-and-winrt... > ...the biggest problem is that USER [API] is essentially inextensible. If a developer wants to create, say, a menu that acts exactly like the standard operating system menu but with some small extra feature (for example, he might want to support the drag and drop, similar to the Favorites menu in Internet Explorer) he generally has no option but to reinvent the entire menu system from scratch. Seems like the failure of the Longhorn project really messed things up. It was suppose to replace the janky old win32 with .NET managed APIs. I just remember XAML/WPF/.NET being incredibly slow. And choosing a managed language for OS stuff seemed bad. I can't believe no one was doing a quick POC and saying: this is too slow. You have to give credit to Apple platform team. They have some real visionaries there. They had the guts to ignore garbage collection even when it was taking over the entire software industry. I guess MS just needed a competitor for Java.
- AndrewDucker 3y agoNo visual designer. I'm sorry, but this is a massive step back in usability. I'm not moving from a system where I can drag/drop UI elements into place to one where I can't.
- anakaine 3y agoAbsolutely this. So much this. I dont give a shit about how modern you want the look and feel of everything to be. Sometimes I just need to not spend weeks pulling out my hair trying to wrap my head around something so basic and simple as a UI. Even VB 6 had ways to make stuff scale. Can't be that hard.
- grumblingdev 3y agoFor someone coming back to Windows development after 5+ years, it is so incredibly difficult to figure out what is going on. I have never had so much confusion in my life. WinUI 2, WinUI 3, C++/WinRT, C#/WinRT, C++/CX, C++/CLI, WinRT (Windows Runtime - that's not a runtime), COM, C++ Win32, C# .NET, UWP, Fluent, Metro, .NET MAUI, PWA, React Native for Windows, WPF, Windows Forms, Windows API, Windows App SDK (which is WinUI 3), VSIX, XAML, .winmd, WebView2. When I think about macOS: Swift + SwiftUI, Swift/ObjC + AppKit. This article was a huge read but helped me get an idea of things: https://arstechnica.com/features/2012/10/windows-8-and-winrt-everything-old-is-new-again/ https://arstechnica.com/features/2012/10/windows-8-and-winrt... I think the issue is that the writers are trying to be too delicate to not make people feel like their apps are using legacy technology that will be deprecated. > Many apps for Windows are written using WPF or Windows Forms, and they remain viable tools today...looking to the future.... There should be one obvious recommended way to build new apps, and all the other docs should be moved to a separate section. And when I install Visual Studio 2022, it has a "Workload" called "Universal Windows Platform"...but I just read this is deprecated!!
- anakaine 3y agoYou've just very eloquently listed out the Windows UI framework dumpster fire. I honestly don't think Microsoft has the balls or ability to set a singular way forward at this point. WPF/UML have both been pieces of hot garbage. So one more framework to rule them all probably isn't something they're looking to explore at this point. What should probably happen is that they make an announcement similar to that which they dis with printer drivers. "Beyond 2027, it must all look like this. Here is 4 years lead time. Get on the train."
- fassssst 3y agoLet me make it easy for you, if you want it to look and feel native on Windows 11, use WinUI 3. ChatGPT gives a decent summary of the history of all that: https://chat.openai.com/share/6478dcdd-98d3-449a-84be-be56664b03aa https://chat.openai.com/share/6478dcdd-98d3-449a-84be-be5666...
- pjc50 3y ago
- pjc50 3y ago.. and how many of the Microsoft applications actually use WinUI3? As far as I can tell they're doing their own thing (Office) or are Electron (Teams) or, at least in Windows 10, haven't actually been updated from WinForms. The overhead of WinUI3 is pretty huge. The visual designer, a winning feature of Visual Studio for decades, is AWOL. Why? It's XAML, the same as the previous XAML designer! It's just .. broken? The backward compatibility story is a disaster: you can get stuck in the UWP sandbox https://github.com/microsoft/WindowsAppSDK/issues/1780 https://github.com/microsoft/WindowsAppSDK/issues/1780 What's the big Microsoft WinUI3 flagship app, then? Something people are actually using? Rather than just a few system dialogues. (How many Win11 settings pop up a Win32 dialogue box, still?)
- fassssst 3y agoFile Explorer is using it. Much of the Windows 11 shell, including the taskbar, Start menu, Settings, notifications, and Microsoft Store is using WinUI 2 (only because WinUI 3 wasn’t ready at the time). Even apps like Notepad, Paint, Sound Recorder and Media Player use WinUI. WinUI 2 and WinUI 3 currently share the same look and feel but new apps should use WinUI 3.
- pjc50 3y ago> new apps should use WinUI 3 Other than apps written by the Windows team and shipped with Windows, what's the flagship WinUI3 app? How large is the actual WinUI team, approximately? We can make guesses from the number of committers on github, which appears to be about half a dozen people? It just doesn't feel like Microsoft themselves are really committed to making it work and then forcing it on Office or Teams. At some point soon I'm going to have to do a native app to do driver control, and it seems the elegant simplicity of WinForms has been lost compared to how much "runtime" nonsense is hiding underneath the two different WinUI2/3 implementations. (You've done a Python 3 there!)
- fassssst 3y agoThe new Apple apps and WhatsApp and Adobe Fresco use WinUI. Arc browser’s upcoming Windows version uses WinUI.
- hnthrowaway0315 3y agoThanks, what is best non-web way to get windows 95 look for a desktop app?