Hacker News new | ask | show | jobs
by sleepinseattle 2239 days ago
The framework layer of WPF is implemented in C#. WinUI is all C++, including the framework and the compositor that makes the DirectX calls.

In the framework layer, typical UI updates are faster because the WinUI data binding system uses code-generation rather than the reflection-like runtime binding system that WPF has.

WinUI also includes the rather incredible Windows.UI.Composition API’s, with things like ExpressionAnimation that enable lots of cool animations (like parallax, sticky header, or cursor-relative) at a stable 60 FPS.

Disclosure: I work at Microsoft on the Windows team.

1 comments

Great answer, thanks.

> code-generation rather than the reflection-like runtime binding system that WPF has

That's a good move. If a convenient abstraction can be implemented in a way that 'compiles out', it ideally should be implemented that way. Does this enable more compile-time checks?

Yes, in WinUI you get build breaks if you have a typo in your property name :)

It also adds the ability to bind to functions, which can eliminate a lot of ViewModel boilerplate for computed properties.