{"slug": "wpf", "name": "WPF", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "Microsoft's XAML-based UI framework for building Windows desktop applications with .NET.", "recommenders": 5, "commenters": 6, "warners": 1, "score": 3.64, "rising": 2.35, "first": "2026-03-21", "latest": "2026-09-05", "why": "Recommended as a dependable Windows desktop UI option over WinUI 3 and MAUI, with praise for its grid layout and list virtualization.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 5, "neutral": 0, "compare": 0, "warn": 1}, "spark": [0, 0, 0, 0, 1, 0, 1, 0, 0, 3, 0, 0], "listed": true, "loved": ["Production-ready", "Grid layout"], "caveat": "Windows-only", "short_quote": "Yeah, I like WPF and I still use it for my own apps.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://learn.microsoft.com/dotnet/desktop/wpf/", "pricing": "open source", "aliases": ["WPF"], "verdict": [{"text": "Recommended as a dependable Windows desktop UI option over WinUI 3 and MAUI,", "cites": [{"id": 768200082, "item_id": 48012505, "url": "https://news.ycombinator.com/item?id=48012505", "by": "jdw64", "date": "2026-05-04", "stance": "recommend", "quote": "the only truly usable products still seem to be WPF and WinForms", "excerpt": "As a .NET developer and a Korean developer, I honestly have very few realistic options other than Windows. But recently, the Windows/.NET UI options feel terrible. Starting with the support situation around WPF, the identity of MAUI as a Xamarin-descended framework feels strange, and WinUI 3 has too many bugs. I honestly do not know what Microsoft wants developers to use. Whether this is internal politics between Mic", "context": ".NET developer in Korea", "use_case": "Windows desktop UI", "switched_from": "", "story": "What is .NET, and why should you choose it?"}, {"id": 759680899, "item_id": 47480056, "url": "https://news.ycombinator.com/item?id=47480056", "by": "pjmlp", "date": "2026-03-22", "stance": "recommend", "quote": "Keep using Win32, MFC (yes it is in a better state than WinUI 3.0 with C++), WinForms, WPF", "excerpt": "Again, unless you have existing Windows 8/10 applications that were written against WinRT, UAP or UWP[0], that make use of WinUI 2.0, forget about touching anything related to WinUI 3.0 or WinAppSDK, stay away from the marketing. Exception being the few APIs that have been introduced in Win32 that instead of COM, actually depend on WinRT like the new MIDI 2.0 or Windows ML. Keep using Win32, MFC (yes it is in a bette", "context": "", "use_case": "Windows desktop apps", "switched_from": "", "story": "Windows native app development is a mess"}, {"id": 759435426, "item_id": 47464714, "url": "https://news.ycombinator.com/item?id=47464714", "by": "pjmlp", "date": "2026-03-21", "stance": "recommend", "quote": "better use Win32, Forms, WPF, Avalonia, Qt,...", "excerpt": "People stop believing in anything related to WinUI coming from Microsoft marketing machine. Besides examples like this one. The amount of issues on Github across all WinUI related tools, keeps increasing all over the place, there is almost no visible activity, the community calls have been a disaster with Q&A being ignored, team rotation, whatever. Native AOT still cannot do what .NET Native did (there is a CsWinRT 3", "context": "", "use_case": "", "switched_from": "", "story": "Windows 11's Start menu was built using React \u2013 now switching to native WinUI"}]}, {"text": " with praise for its grid layout and list virtualization.", "cites": [{"id": 789802129, "item_id": 49362633, "url": "https://news.ycombinator.com/item?id=49362633", "by": "nxc18", "date": "2026-08-19", "stance": "recommend", "quote": "", "excerpt": "Came here to say the same thing. I feel like I\u2019ve done my homework on CSS grid and CSS flex but no matter how much I use it, it will likely never become intuitive. Autolayout was love at first sight, and continued being a joy to use as long as I had the privilege of using it. I know the CSS people were painted into a box by legacy, but the design of both grid and flex honestly seem like the products of uniquely deran", "context": "", "use_case": "UI layout", "switched_from": "", "story": "Taffy: A flexible, high-performance, cross-platform UI layout library"}, {"id": 786473424, "item_id": 49154589, "url": "https://news.ycombinator.com/item?id=49154589", "by": "torginus", "date": "2026-08-03", "stance": "recommend", "quote": "I used to use WPF on desktop, and it had pretty good virtualization support", "excerpt": "I am talking about virtualized lists. And it should be a framework feature. I used to use WPF on desktop, and it had pretty good virtualization support (though the framework in general was more like Angular) - most containers had virtualization support, and you only had to implement the logic on the data source, and they framework created and managed physical UI elements for you, and managed the mapping so it seemed ", "context": "", "use_case": "desktop UI with virtualized lists", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}]}, {"text": " Caveats include being tied to Windows", "cites": [{"id": 786369568, "item_id": 49148098, "url": "https://news.ycombinator.com/item?id=49148098", "by": "masfuerte", "date": "2026-08-02", "stance": "recommend", "quote": "Yeah, I like WPF and I still use it for my own apps.", "excerpt": "Yeah, I like WPF and I still use it for my own apps. In fact, my own software is the only thing keeping me on Windows now. I really should take a look at Avalonia and port my stuff over to Linux.", "context": "", "use_case": "desktop apps", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}]}, {"text": ", concerns about its support situation", "cites": [{"id": 768200082, "item_id": 48012505, "url": "https://news.ycombinator.com/item?id=48012505", "by": "jdw64", "date": "2026-05-04", "stance": "recommend", "quote": "the only truly usable products still seem to be WPF and WinForms", "excerpt": "As a .NET developer and a Korean developer, I honestly have very few realistic options other than Windows. But recently, the Windows/.NET UI options feel terrible. Starting with the support situation around WPF, the identity of MAUI as a Xamarin-descended framework feels strange, and WinUI 3 has too many bugs. I honestly do not know what Microsoft wants developers to use. Whether this is internal politics between Mic", "context": ".NET developer in Korea", "use_case": "Windows desktop UI", "switched_from": "", "story": "What is .NET, and why should you choose it?"}]}, {"text": ", and one developer's regret about investing in it.", "cites": [{"id": 793147425, "item_id": 49571714, "url": "https://news.ycombinator.com/item?id=49571714", "by": "iLemming", "date": "2026-09-05", "stance": "warn", "quote": "I invested heavily into WPF and Silverlight, I believed their propaganda. I don't feel even a half-pint of value from the experiences I gained", "excerpt": "Because Emacs is not a text editor, it's rather a text orchestrator. And Emacs Lisp is specifically text-oriented, unlike most other Lisps that are data-oriented. It fits incredibly well for LLM-flows. I'm surprised how it remains enormously flexible even though my workflows change every day. The way how I used LLMs last year vastly differs from a few months ago and totally unlike of today, yet bending Emacs never hi", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}]}], "praise": [{"label": "Production-ready", "summary": "Commenters recommend it over WinUI 3 and MAUI as a usable choice for serious Windows work.", "quotes": [{"id": 768200082, "item_id": 48012505, "url": "https://news.ycombinator.com/item?id=48012505", "by": "jdw64", "date": "2026-05-04", "stance": "recommend", "quote": "the only truly usable products still seem to be WPF and WinForms", "excerpt": "As a .NET developer and a Korean developer, I honestly have very few realistic options other than Windows. But recently, the Windows/.NET UI options feel terrible. Starting with the support situation around WPF, the identity of MAUI as a Xamarin-descended framework feels strange, and WinUI 3 has too many bugs. I honestly do not know what Microsoft wants developers to use. Whether this is internal politics between Mic", "context": ".NET developer in Korea", "use_case": "Windows desktop UI", "switched_from": "", "story": "What is .NET, and why should you choose it?"}, {"id": 759680899, "item_id": 47480056, "url": "https://news.ycombinator.com/item?id=47480056", "by": "pjmlp", "date": "2026-03-22", "stance": "recommend", "quote": "Keep using Win32, MFC (yes it is in a better state than WinUI 3.0 with C++), WinForms, WPF", "excerpt": "Again, unless you have existing Windows 8/10 applications that were written against WinRT, UAP or UWP[0], that make use of WinUI 2.0, forget about touching anything related to WinUI 3.0 or WinAppSDK, stay away from the marketing. Exception being the few APIs that have been introduced in Win32 that instead of COM, actually depend on WinRT like the new MIDI 2.0 or Windows ML. Keep using Win32, MFC (yes it is in a bette", "context": "", "use_case": "Windows desktop apps", "switched_from": "", "story": "Windows native app development is a mess"}, {"id": 759435426, "item_id": 47464714, "url": "https://news.ycombinator.com/item?id=47464714", "by": "pjmlp", "date": "2026-03-21", "stance": "recommend", "quote": "better use Win32, Forms, WPF, Avalonia, Qt,...", "excerpt": "People stop believing in anything related to WinUI coming from Microsoft marketing machine. Besides examples like this one. The amount of issues on Github across all WinUI related tools, keeps increasing all over the place, there is almost no visible activity, the community calls have been a disaster with Q&A being ignored, team rotation, whatever. Native AOT still cannot do what .NET Native did (there is a CsWinRT 3", "context": "", "use_case": "", "switched_from": "", "story": "Windows 11's Start menu was built using React \u2013 now switching to native WinUI"}]}, {"label": "Grid layout", "summary": "Its grid is called as powerful as CSS grid but much easier to understand.", "quotes": [{"id": 789802129, "item_id": 49362633, "url": "https://news.ycombinator.com/item?id=49362633", "by": "nxc18", "date": "2026-08-19", "stance": "recommend", "quote": "", "excerpt": "Came here to say the same thing. I feel like I\u2019ve done my homework on CSS grid and CSS flex but no matter how much I use it, it will likely never become intuitive. Autolayout was love at first sight, and continued being a joy to use as long as I had the privilege of using it. I know the CSS people were painted into a box by legacy, but the design of both grid and flex honestly seem like the products of uniquely deran", "context": "", "use_case": "UI layout", "switched_from": "", "story": "Taffy: A flexible, high-performance, cross-platform UI layout library"}]}, {"label": "Virtualization", "summary": "Most containers support virtualized lists, with the framework managing UI elements for you.", "quotes": [{"id": 786473424, "item_id": 49154589, "url": "https://news.ycombinator.com/item?id=49154589", "by": "torginus", "date": "2026-08-03", "stance": "recommend", "quote": "I used to use WPF on desktop, and it had pretty good virtualization support", "excerpt": "I am talking about virtualized lists. And it should be a framework feature. I used to use WPF on desktop, and it had pretty good virtualization support (though the framework in general was more like Angular) - most containers had virtualization support, and you only had to implement the logic on the data source, and they framework created and managed physical UI elements for you, and managed the mapping so it seemed ", "context": "", "use_case": "desktop UI with virtualized lists", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}]}, {"label": "Personal apps", "summary": "A commenter still likes it and uses it for their own apps.", "quotes": [{"id": 786369568, "item_id": 49148098, "url": "https://news.ycombinator.com/item?id=49148098", "by": "masfuerte", "date": "2026-08-02", "stance": "recommend", "quote": "Yeah, I like WPF and I still use it for my own apps.", "excerpt": "Yeah, I like WPF and I still use it for my own apps. In fact, my own software is the only thing keeping me on Windows now. I really should take a look at Avalonia and port my stuff over to Linux.", "context": "", "use_case": "desktop apps", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}]}], "caveats": [{"label": "Windows-only", "summary": "One user says their WPF apps are the only thing keeping them on Windows and is considering porting to Avalonia for Linux.", "quotes": [{"id": 786369568, "item_id": 49148098, "url": "https://news.ycombinator.com/item?id=49148098", "by": "masfuerte", "date": "2026-08-02", "stance": "recommend", "quote": "Yeah, I like WPF and I still use it for my own apps.", "excerpt": "Yeah, I like WPF and I still use it for my own apps. In fact, my own software is the only thing keeping me on Windows now. I really should take a look at Avalonia and port my stuff over to Linux.", "context": "", "use_case": "desktop apps", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}]}, {"label": "Support concerns", "summary": "A .NET developer points to the support situation around WPF as a worry.", "quotes": [{"id": 768200082, "item_id": 48012505, "url": "https://news.ycombinator.com/item?id=48012505", "by": "jdw64", "date": "2026-05-04", "stance": "recommend", "quote": "the only truly usable products still seem to be WPF and WinForms", "excerpt": "As a .NET developer and a Korean developer, I honestly have very few realistic options other than Windows. But recently, the Windows/.NET UI options feel terrible. Starting with the support situation around WPF, the identity of MAUI as a Xamarin-descended framework feels strange, and WinUI 3 has too many bugs. I honestly do not know what Microsoft wants developers to use. Whether this is internal politics between Mic", "context": ".NET developer in Korea", "use_case": "Windows desktop UI", "switched_from": "", "story": "What is .NET, and why should you choose it?"}]}, {"label": "Wasted investment", "summary": "One developer felt they gained little lasting value from investing heavily in WPF and Silverlight.", "quotes": [{"id": 793147425, "item_id": 49571714, "url": "https://news.ycombinator.com/item?id=49571714", "by": "iLemming", "date": "2026-09-05", "stance": "warn", "quote": "I invested heavily into WPF and Silverlight, I believed their propaganda. I don't feel even a half-pint of value from the experiences I gained", "excerpt": "Because Emacs is not a text editor, it's rather a text orchestrator. And Emacs Lisp is specifically text-oriented, unlike most other Lisps that are data-oriented. It fits incredibly well for LLM-flows. I'm surprised how it remains enormously flexible even though my workflows change every day. The way how I used LLMs last year vastly differs from a few months ago and totally unlike of today, yet bending Emacs never hi", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}]}], "who": [{"by": "jdw64", "context": ".NET developer in Korea", "url": "https://news.ycombinator.com/item?id=48012505", "date": "2026-05-04"}], "tags": ["for Windows desktop apps", "for .NET developers", "for personal projects"], "use_cases": ["ui layout", "desktop ui with virtualized lists", "desktop apps", "windows desktop ui", "windows desktop apps"], "compared": [{"slug": "avalonia", "name": "Avalonia", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "qt", "name": "Qt", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "winforms", "name": "WinForms", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49147263", "title": "SwiftUI After 7 Years: A Story of Mediocrity", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49524863", "title": "Fine, I'll build my own text editor", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49286987", "title": "Taffy: A flexible, high-performance, cross-platform UI layout library", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48011667", "title": "What is .NET, and why should you choose it?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47475938", "title": "Windows native app development is a mess", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47463884", "title": "Windows 11's Start menu was built using React \u2013 now switching to native WinUI", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {"recommend": 3}, "2026-09": {"warn": 1}, "2026-10": {}}, "quotes": [{"id": 793147425, "item_id": 49571714, "url": "https://news.ycombinator.com/item?id=49571714", "by": "iLemming", "date": "2026-09-05", "stance": "warn", "quote": "I invested heavily into WPF and Silverlight, I believed their propaganda. I don't feel even a half-pint of value from the experiences I gained", "excerpt": "Because Emacs is not a text editor, it's rather a text orchestrator. And Emacs Lisp is specifically text-oriented, unlike most other Lisps that are data-oriented. It fits incredibly well for LLM-flows. I'm surprised how it remains enormously flexible even though my workflows change every day. The way how I used LLMs last year vastly differs from a few months ago and totally unlike of today, yet bending Emacs never hi", "context": "", "use_case": "", "switched_from": "", "story": "Fine, I'll build my own text editor"}, {"id": 789802129, "item_id": 49362633, "url": "https://news.ycombinator.com/item?id=49362633", "by": "nxc18", "date": "2026-08-19", "stance": "recommend", "quote": "", "excerpt": "Came here to say the same thing. I feel like I\u2019ve done my homework on CSS grid and CSS flex but no matter how much I use it, it will likely never become intuitive. Autolayout was love at first sight, and continued being a joy to use as long as I had the privilege of using it. I know the CSS people were painted into a box by legacy, but the design of both grid and flex honestly seem like the products of uniquely deran", "context": "", "use_case": "UI layout", "switched_from": "", "story": "Taffy: A flexible, high-performance, cross-platform UI layout library"}, {"id": 786473424, "item_id": 49154589, "url": "https://news.ycombinator.com/item?id=49154589", "by": "torginus", "date": "2026-08-03", "stance": "recommend", "quote": "I used to use WPF on desktop, and it had pretty good virtualization support", "excerpt": "I am talking about virtualized lists. And it should be a framework feature. I used to use WPF on desktop, and it had pretty good virtualization support (though the framework in general was more like Angular) - most containers had virtualization support, and you only had to implement the logic on the data source, and they framework created and managed physical UI elements for you, and managed the mapping so it seemed ", "context": "", "use_case": "desktop UI with virtualized lists", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}, {"id": 786369568, "item_id": 49148098, "url": "https://news.ycombinator.com/item?id=49148098", "by": "masfuerte", "date": "2026-08-02", "stance": "recommend", "quote": "Yeah, I like WPF and I still use it for my own apps.", "excerpt": "Yeah, I like WPF and I still use it for my own apps. In fact, my own software is the only thing keeping me on Windows now. I really should take a look at Avalonia and port my stuff over to Linux.", "context": "", "use_case": "desktop apps", "switched_from": "", "story": "SwiftUI After 7 Years: A Story of Mediocrity"}, {"id": 768200082, "item_id": 48012505, "url": "https://news.ycombinator.com/item?id=48012505", "by": "jdw64", "date": "2026-05-04", "stance": "recommend", "quote": "the only truly usable products still seem to be WPF and WinForms", "excerpt": "As a .NET developer and a Korean developer, I honestly have very few realistic options other than Windows. But recently, the Windows/.NET UI options feel terrible. Starting with the support situation around WPF, the identity of MAUI as a Xamarin-descended framework feels strange, and WinUI 3 has too many bugs. I honestly do not know what Microsoft wants developers to use. Whether this is internal politics between Mic", "context": ".NET developer in Korea", "use_case": "Windows desktop UI", "switched_from": "", "story": "What is .NET, and why should you choose it?"}, {"id": 759680899, "item_id": 47480056, "url": "https://news.ycombinator.com/item?id=47480056", "by": "pjmlp", "date": "2026-03-22", "stance": "recommend", "quote": "Keep using Win32, MFC (yes it is in a better state than WinUI 3.0 with C++), WinForms, WPF", "excerpt": "Again, unless you have existing Windows 8/10 applications that were written against WinRT, UAP or UWP[0], that make use of WinUI 2.0, forget about touching anything related to WinUI 3.0 or WinAppSDK, stay away from the marketing. Exception being the few APIs that have been introduced in Win32 that instead of COM, actually depend on WinRT like the new MIDI 2.0 or Windows ML. Keep using Win32, MFC (yes it is in a bette", "context": "", "use_case": "Windows desktop apps", "switched_from": "", "story": "Windows native app development is a mess"}, {"id": 759435426, "item_id": 47464714, "url": "https://news.ycombinator.com/item?id=47464714", "by": "pjmlp", "date": "2026-03-21", "stance": "recommend", "quote": "better use Win32, Forms, WPF, Avalonia, Qt,...", "excerpt": "People stop believing in anything related to WinUI coming from Microsoft marketing machine. Besides examples like this one. The amount of issues on Github across all WinUI related tools, keeps increasing all over the place, there is almost no visible activity, the community calls have been a disaster with Q&A being ignored, team rotation, whatever. Native AOT still cannot do what .NET Native did (there is a CsWinRT 3", "context": "", "use_case": "", "switched_from": "", "story": "Windows 11's Start menu was built using React \u2013 now switching to native WinUI"}]}