WPF - why?!
-
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case... Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
The (wpf) UI designer is definitely horrible. And wpf does have a steeeep learning curve (trust me, 'been there). The funny thing is, to fully appreciate it, you need to use it (and actually compare it to Winforms) - and while at the beginning, you'll curse a lot (I did :D), when you start to "get" it, you'll use it for any non-trivial UI. The more you'll delve into it, the more you'll love it (granted, you'll still hate the UI designer :D). Two easy examples: animations, pixel shaders (i.e., Effects). When you actually start understanding how layout works in wpf, you'll be able to create controls that can simply blow your mind (which would be really really hard to implement in Winforms)! Best, John P.S. If (just if :D) you want to learn WPF, I recommend "WPF 4.5 Unleashed" - a lot of things don't seem to make any sense in WPF, until explained. Again, been there :)
-- Phot-Awe - Find the Photos you Love - FAST!
-
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case... Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
Winforms isn't ugly in my opinion. WPF is, though! :doh:
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark Twain -
The (wpf) UI designer is definitely horrible. And wpf does have a steeeep learning curve (trust me, 'been there). The funny thing is, to fully appreciate it, you need to use it (and actually compare it to Winforms) - and while at the beginning, you'll curse a lot (I did :D), when you start to "get" it, you'll use it for any non-trivial UI. The more you'll delve into it, the more you'll love it (granted, you'll still hate the UI designer :D). Two easy examples: animations, pixel shaders (i.e., Effects). When you actually start understanding how layout works in wpf, you'll be able to create controls that can simply blow your mind (which would be really really hard to implement in Winforms)! Best, John P.S. If (just if :D) you want to learn WPF, I recommend "WPF 4.5 Unleashed" - a lot of things don't seem to make any sense in WPF, until explained. Again, been there :)
-- Phot-Awe - Find the Photos you Love - FAST!
Agreed, on all counts. I've been using WPF for ten years for UI on our products. Once you 'get it', you can do wonderfully useful things in your UI that would be next to impossible without it. And yes, the WPF designer is worthless. Between constant crashes and its incessant need to insert absolute constants everywhere, it's far easier to hand-code XAML.
Software Zen:
delete this;
-
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case... Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
-
I've never used the UI designer, and do everything in XAML. Even Blend still scares the hell out of me to this day, and I'm a proficient WPF/XAML developer. Writing XAML is no different to a web developer writing HTML - nobody uses drag'n'drop interfaces on that platform. Admittedly it's easier to see your changes by just pressing F5 in the open browser window, rather than have to run the app...
I haven't done anything in WPF for a while so I'm not sure if it works the same there, but while starting my 1st UWP app a few months ago I discovered that I could live edit the xaml while the app was running and have UI changes show up immediately in the app. On the plus side, no need for that pesky Alt-F-S, Alt-Tab, F5 to see changes; on the minus at times VS would interrupt the live editing to complain that a half typed bit of markup was generating a parse error.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
I've been looking for something like this!
-
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case... Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
-
The (wpf) UI designer is definitely horrible. And wpf does have a steeeep learning curve (trust me, 'been there). The funny thing is, to fully appreciate it, you need to use it (and actually compare it to Winforms) - and while at the beginning, you'll curse a lot (I did :D), when you start to "get" it, you'll use it for any non-trivial UI. The more you'll delve into it, the more you'll love it (granted, you'll still hate the UI designer :D). Two easy examples: animations, pixel shaders (i.e., Effects). When you actually start understanding how layout works in wpf, you'll be able to create controls that can simply blow your mind (which would be really really hard to implement in Winforms)! Best, John P.S. If (just if :D) you want to learn WPF, I recommend "WPF 4.5 Unleashed" - a lot of things don't seem to make any sense in WPF, until explained. Again, been there :)
-- Phot-Awe - Find the Photos you Love - FAST!
I agree that the learning curve is quite steep and there still are things that you cannot do in the designer or XAML (or at least not intuitively). I have, from time to time, built entire controls with children in the code so I don't have XAML documents 1000+ lines long and nested enough to require a lot of horizontal scrolling. However, I still prefer it to WinForms.
if (Object.DividedByZero == true) { Universe.Implode(); }
-
Winforms isn't ugly in my opinion. WPF is, though! :doh:
Anything that is unrelated to elephants is irrelephant
Anonymous
-----
The problem with quotes on the internet is that you can never tell if they're genuine
Winston Churchill, 1944
-----
Never argue with a fool. Onlookers may not be able to tell the difference.
Mark TwainI concur. I tried, really tried, to use WPF but it produced such an ugly and clunky UI that i implemented what I wanted in WinForms - quickly and easily with very smooth and beautiful results - and a few fancy effects while I was at it - also easily implemented and debugged as necessary. Bring back Winforms! I was about to say "All is Forgiven!" but there is nothing really to forgive. I think the "Winforms is Ugly" came from Microsoft Marketing Bozos to enable adoption of the terrible WPF!
- I would love to change the world, but they won’t give me the source code.
-
So I have to write a new extension for VS, which means I have to deal with WPF... DataGrid in this case... Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
WPF compared to winforms feels half baked and inconsistent; documentation is, poor and I spend more time searching the web on how to do something so simple in winforms (like a checked listbox) that I'm not enjoying development anymore. UWP you can at least use win2d and get a graphics object like the GDI+ in winforms and draw natively when you need. I'm not saying winforms is perfect, and not everything in WPF is bad, I can just do way more work in a single day with winforms than WPF. It feels like the ones who created xaml looked at the web and tried to copy how that worked, to bring web devs to the desktop.
-
The (wpf) UI designer is definitely horrible. And wpf does have a steeeep learning curve (trust me, 'been there). The funny thing is, to fully appreciate it, you need to use it (and actually compare it to Winforms) - and while at the beginning, you'll curse a lot (I did :D), when you start to "get" it, you'll use it for any non-trivial UI. The more you'll delve into it, the more you'll love it (granted, you'll still hate the UI designer :D). Two easy examples: animations, pixel shaders (i.e., Effects). When you actually start understanding how layout works in wpf, you'll be able to create controls that can simply blow your mind (which would be really really hard to implement in Winforms)! Best, John P.S. If (just if :D) you want to learn WPF, I recommend "WPF 4.5 Unleashed" - a lot of things don't seem to make any sense in WPF, until explained. Again, been there :)
-- Phot-Awe - Find the Photos you Love - FAST!
-
I'm currently working on a graphics intensive application as well. Redrawing using WPF took about 7 seconds. We're currently using a SharpDX based renderer instead and when we need to update ALL the primitives and redraw it takes about 25ms. WPF is based on Dx9(and needs to be updated to 12 tbh) so it shouldn't need to be this freaking slow!
Yeah, there is no reason it should be soooo painfully slow. Its significantly worse than any other presentation framework I've used. The excuse that its retained-mode vs immediate-mode doesn't really cut it. It does not seem to be a DX issue. I've written code directly accessing older versions of DX...without similar performance problems. Somebody at MS needs to meter the WPF code and find its major malfunction. Instead, all you see on the boards are apologists telling everyone they're simply "doing it wrong". This advice isn't entirely incorrect...people really do some dumb stuff. However, this advice doesn't explain away all of WPF's performance problems. They're very real...and not going away until someone at MS fixes them. Regrettably, there seems to be absolutely zero movement on that front.
-
Agreed. The framework incorporates some really great ideas and then falls flat in the implementation. My biggest complaint (vs WinForm) is that the design UI completely sucks by comparison. In VS, with WinForm, everything is drag-and-drop / point-and-click. With WPF, I need to constantly resort to editing the XML. There is no reason it needs to be this way. They really need to either get a better UI team or give the team they already have time to fix it. The other problem is the (effective) lack of immediate-mode graphics. I understand that for line-of-business apps this makes perfect sense. However, they should support a fall-back for graphic intensive applications. Try drawing and re-drawing a few thousand lines. Performance is fine in WinForm, but its frustratingly slow in WPF...even when you take advantage of all the WPF performance tweaks. To solve this performance issue, we're left playing with 3rd party work-arounds...using writeable bitmaps. They work great. This means there is absolutely no reason, other than arrogance, that MS can't incorporate some of these concepts into WPF...in a better supported/more seamless fashion. Also, provide better support for WinForm-style docking. Yes, I understand the other layouts are far more flexible and worth learning. I took the time. I still find them less intuitive. So, why punish WinForm developers making the transition? Keep the cool new layouts and add better support for docking layouts as well. As it stands now, for me, WPF is an interesting toy for occasional play. I use it when I want some really flexible layouts...in line-of-business apps. Or, when a customer requests it. Or, when I play with UWP. Otherwise, I still use WinForm. Its a real shame. I'd prefer to move full time to WPF, to ease the wear-and-tear switching back and forth causes on my poor brain. Come on MS...finish what you started!
"
Quote:
The framework incorporates some really great ideas and then falls flat in the implementation.
I agree, to some extent. WPF uses the GPU instead of the CPU as WinForms does so rendering should be faster. But, in my case, I started with WinForms and before that MFC. Drag and dropping the controls was much easier and I spent less time on coding my window and more time on my application. There is a lot techniques you can do in WPF that you cannot do in WinForms to make a flashy presentation with great graphics, but WinForms is good for basic applications. I have found that I can get flashy usable controls from 3rd parties like Infragistics. To me, drag and drop is much easier whereas, in the project I'm currently working on, WPF is the workhorse for us, since we keep adding more and more to the controls and sub-controls. Xaml allows us to finely control what we show. If we were to do it programmatically in C#, then it would be similar to QT.
-
I know what you mean ... it's like they had a good idea but it never really got finished. With a good intelligent design UI it could have been so good. As it is it's too clumsy and just feels unfinished to develop in. Pity.
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
Is it possible to tie HTML and CSS to compiled C# (instead of JavaScript)? To me, it seems that HTML is much more understandable that Xaml.
-
Is it possible to tie HTML and CSS to compiled C# (instead of JavaScript)? To me, it seems that HTML is much more understandable that Xaml.
No! C# does not run on your browser, only JS does. C# requires the .NET framework, which is pretty huge (and doesn't work on iOS for example).
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
Kornfeld Eliyahu Peter wrote:
Why's that WPF, that came to life to replace the ugly WinForms, is so ugly?
Because they decided instead to focus on an inane XML syntax instead that requires, among other things, custom instantiators instead of a simple parser and is almost (if not completely) impossible to express and correctly render in a designer, requiring you to hand code the XML, which when I wrote my articles on MyXaml, everyone screeched about how nobody would want to hand-code XML to design a UI, but when Microsoft put out WPF, that's what everyone was forced to do and even seemed to enjoy doing. Um.. end rant? Oh, and because Microsoft likes to leave the professional UI design to third parties. :)
Latest Article - A Concise Overview of Threads Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
I am an old fossil — when I started there was no such thing as a graphics interface. Input was either punched cards, magnetic tape or an IBM Selectric or ASR 33 console. I definitely prefer XAML to drag-and-drop. It is much easier to write parameters to modify a control than to have to open a property window. Extending a WinForms property window? Not trivial. Adding a parameter to an XAML control, by way of contrast, is almost effortless!
I LIKE WPF!! I just wish it had better error detection at coding time.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
-
Agreed, on all counts. I've been using WPF for ten years for UI on our products. Once you 'get it', you can do wonderfully useful things in your UI that would be next to impossible without it. And yes, the WPF designer is worthless. Between constant crashes and its incessant need to insert absolute constants everywhere, it's far easier to hand-code XAML.
Software Zen:
delete this;
Agree
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
-
WPF compared to winforms feels half baked and inconsistent; documentation is, poor and I spend more time searching the web on how to do something so simple in winforms (like a checked listbox) that I'm not enjoying development anymore. UWP you can at least use win2d and get a graphics object like the GDI+ in winforms and draw natively when you need. I'm not saying winforms is perfect, and not everything in WPF is bad, I can just do way more work in a single day with winforms than WPF. It feels like the ones who created xaml looked at the web and tried to copy how that worked, to bring web devs to the desktop.
Only if you are doing something relatively simple.
Any form that requires execution-time reconfiguration gets real messy in WinForms, while in WPF, all it requires in changing bound parameter values. Before I was retired, I did this all the time.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
-
Only if you are doing something relatively simple.
Any form that requires execution-time reconfiguration gets real messy in WinForms, while in WPF, all it requires in changing bound parameter values. Before I was retired, I did this all the time.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
I worked in industrial control, my software had several hundred install locations, all included run-time end user customization: everything from user color themes to what data point was shown where and how it was formatted, and it was all done in winforms with help from GDI+ to a remote computer dishing out WCF, I'm not even sure how I could pull off the same thing under WPF. the only thing I liked so far about WPF is the lack Hwin handles on everything, and it does feel less OS heavy, but I still prefer the flexibility that winforms plus GDI+ give me on run-time display tweeking. But just like development languages, to each their own in preferences. C# vs VB.net or windform vs. WPF; it doesn't matter to the end user it it gets the job done.
-
I worked in industrial control, my software had several hundred install locations, all included run-time end user customization: everything from user color themes to what data point was shown where and how it was formatted, and it was all done in winforms with help from GDI+ to a remote computer dishing out WCF, I'm not even sure how I could pull off the same thing under WPF. the only thing I liked so far about WPF is the lack Hwin handles on everything, and it does feel less OS heavy, but I still prefer the flexibility that winforms plus GDI+ give me on run-time display tweeking. But just like development languages, to each their own in preferences. C# vs VB.net or windform vs. WPF; it doesn't matter to the end user it it gets the job done.
Prior to my forced :( retirement, I was working in a mental health care setting with a very limited budget. Third-party controls were out of the question, unless they were free and available with source code. This meant that, if I wanted a nonstandard control, I usually had to create it. With WinForms, this was a continuing pain.
With WPF, much of the needed functionality was built in via data bindings. I could often do things with an existing control using a data binding and a few lines of code in a backend module that would have required a whole separate project to create a new control in WinForms.
My boss at the time did not favor my approach, but as the sole programmer :java: and an ever increasing list of new code to be written and older code to maintain, coding speed was important.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock