Stephan van Hulst wrote:Cool, thanks Stevens!
You're most welcome, and thanks for being one of this new forum's first reader/commenters.
XAML is the main reason I have not strayed from old Windows Forms applications yet.
It certainly is daunting. Microsoft's documentation praises it for making so many things "easy," including: isolating UI design from business logic implementation; decoupling form from function in the various controls themselves; simplifying the creation of custom controls; and (for some reason) further streamlining the use of controls by subdividing the structural and cosmetic portions of a control into, respectively, styles and templates.
All of which I am presently thinking is a lot of nonsese. The very idea that I should have to learn yet another cryptic XML-based, CSS-like "language," just so I can set a color, is mind-boggling. Fact is, I wouldn't be digging into XAML at all, this early into my Visual Basic investigations,were it not for the point of this post: the out-of-the-box implementation of a WPF Button fails to do the most basic thing a GUI button should always do, which is change appearance when pressed. I quite hope that someone who knows why Microsoft thought changing it from a pale, ashen, light sky blue to a pale, ashen, light robin's-egg blue was a good idea will find this post and share what they know.
I think Visual Studio's Forms designer is also much friendlier than the WPF designer. When I eventually have to bite the bullet, I'll come back to these posts.
This is also something that seems to have gone through some evolution. Visual Studio includes a designer and it does work. But you can also open your UI files in "Blend," which used to be known as "Expression Blend," and maybe by a few other names. Some people say this is more powerful, while others say all it does is keep the developer stuff out of the UI designer's field of view. I've tried Blend and, honestly, it all looks a lot like Visual Studio, just with the furniture rearranged.
I also still need to get into JavaFX, after being intimately familiar with Swing.
I've tried to start down that path a couple of times, but it seems very opaque. And I do love Swing. Once you get the hang of its MVC/PLAF architecture, it can do quite a bit for you. Alas, one thing it does
not do is react to touchscreens very well. For whatever reason, when you click on a JButton with a mouse, you get the MouseDown event immediately, and can react to it if you want to (before the MouseClicked event is sent). But, with a touchscreen, you don't get a MouseDown event until either you release the button, or move the cursor on it. I believe this is also the case with buttons under Windows Forms. But, with WPF, you can set the Button so that its "click" even is sent upon a mouse-down, which is exactly what you want for a touchscreen. I've tried it and it works well. (I'll do a post on it.)
I really dislike having to learn all these new presentation layer technologies.
Brother, I feel your pain. And it always seems like, no matter which one you think
you should be learning, there are plenty of folks who will tell you your choice is dead. Indeed, even though WPF appears to be the latest framework from Microsoft for desktops, I found an article on a panel discussion with some MS developers who said nothing new was likely to be added to it (and that was in 2014!).
I guess part of the problem is that most new work is being done for Web clients, so it's all about JavaScript, CSS, and so forth. The "GUI" is the browser, these days. But people do still develop desktop apps, so we do still need UI platforms for them.
I also have a theory that Microsoft (among others) never likes to let anything they develop get too old, for fear that competitors will use relatively recent advances in design, hardware, method, etc. to offer superior alternatives. It does seem like, just about every time I dig into a new MS tool, it never takes more than a year before they announce it's in maintenance mode and I am considered obsolete. (Good example of that, and of why it's not always as bad as it seems, is DirectShow. They say it's been replaced by WMF, but there are tons of things WMF still can't do, that DirectShow can, so it still exists and you still have to use it for a lot of things.)
Glad you're interested. I'll be looking forward to grappling with Visual Basic with your help.