Yes, certainly. But WPF/XAML and WinForms (the legacy way of designing UIs) are very different and it’s not really possible to mimic in WPF what can be done in WinForms and reversely.
It’s easy to find WPF versus WinForms comparisons and I do think that WPF is certainly a more modern approach. The question is “when should it be used ?”. WPF has support for data binding, portability, advanced graphical features, etc. But it has a steeper learning curve and takes more development time. It’s also difficult (or impossible) to dynamically modify at runtime what has been specified separately in XAML. Also, you can’t benefit from Windows native features like the Alt+underlined char. feature in menus and dialog boxes. I think that’s why many developers are reluctant to adopt WPF : it modifies “standard” behaviors to which users are accustomed. By the way, the following question regularly appears on the Web : “Is WPF dead ?”. It’s not but never was as successful as expected by Microsoft.
Another example is this one. Input focus issues in DPL have been regularly reported. Now I understand why.
WPF is more “universal” and less OS/platform dependent. It is supposed to facilitate portability. However, we already know that it was apparently impossible to obtain an identical UI in the Windows and Mac versions. And the differences are sometimes not minor. So far for the portability.
Well, it’s DxO’s choice and they won’t ever go back to WinForms anyway. But I’m wondering why they decided to use this technology, especially because they have limited development resources. It’s more complex and requires more development time and I don’t see where the advantages WPF brings are significantly useful in DPL.
Actually, it seems that we have here a situation similar to the one in Lightroom. A good part of Lightroom is written in LUA. It’s easier to code than C# or C++. OK. But when we are wondering why some very old bugs in LR have never been fixed, the answer is obvious : they just can’t. When a language is lacking the features allowing to easily spot a bug (which is the case in LUA : there’s no exception handling in this language), the developers will quickly give up.
Now I see, like John-M, that “quick and simple” fixes may imply much more efforts than expected just because of questionable initial design decisions.