I use WPF every day and it is a powerful framework. That said there are definitely aspects that are very poorly designed. It desperately needs a fork to catch up with the modern framework (no support for generic types, async Task-based commands, etc.). Not to mention that the slow measure/layout pass means that we still have UIs that 'hang' even when absolutely all programmatic work is done on a background thread.