|
I completely agree with your assessments regarding the Windows Forms Designer.
However, I have been developing with WPF(XAML) for quite a while now so I have seen the changes in the WPF Forms Designer over the years.
And it is still as bad as it always has been since very little of it makes any sense from a visual perspective.
Using the WPF Designer appears to work the same as the old Java forms designers, which I found to be completely useless.
As a result, I simply use the XAML Markup Editor that is tied to a WPF window or Page...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
In general, drag and drop, point and click is easier to use and approach. But.... with something like WPF, coordinates can be specified in terms of relative or absolute, and the organization of your containers and how they're setup is relevant too. It doesn't lend itself to a drag and drop approach. You can drag a window and drop it somewhere, and there are several ways the designer could format the code and it can't guess what you actually want. Only you know that. I've only used it a little bit, but I found the xaml editor more helpful. It reminded me of webforms, speaking of which, I never use the designer for web forms. I'm terrible with making pretty web forms, so I just create the elements I need, get it functional and pass it off to our web designer guy who does CSS against everything. He too, hates the designer because it gives you no idea at all what your page is going to actually look like. With Win32 API the designer makes sense, all coordinates are absolute so there is only 1 answer when it comes time to using the code. But even here, I put everything in table or flow layout panels and use those to control the layout logic. I never let anything just sit in a parent container, many of our applications are language translated and having things sit in absolute coordinates is a recipe for disaster.
And given that designers are easier if you're lazy, I would think millenials would be all about making them a top priority. I doubt the lack of a designer is because of millenials.
|
|
|
|
|
You do know that Windows Forms has been doing relative or absolute for quite a while? Including docking options for UI components.
|
|
|
|
|
A little history about WIN32 and scalable coordinates. in the Windows 3.1 days, the WIN API used dialog units which were scalable. Dialogs units with old Windows worked well, since they scaled to the system font and a dialog unit came out exactly 2 pixels in most instances on most displays. When WIN32 came along, so did many larger displays and dialog units didn't always scale properly and didn't come out exactly to pixels, but a percentage of a pixels. This would cause forms designed using the Windows Dialog Designer (aka. very old school designer dating back to Windows 3.1 and coding in pure C) to shift a pixel or two and things often didn't line up properly on some systems.
As a long time WIN32 programmer I saw the pros and cons to dialog units. So when I started writing my own GUI framework based on the WIN32, I choose a different route. Dialog units are actually based on a character unit. Dialog Base Units as they are called are the average width and height of the system font. The system font in Windows 3.1 days was a fixed width and came out to 8 x 16 pixels. A dialog unit was defined as (dialog base unit width / 4) and (dialog base unit height / 8). So 8 / 4 = 2 pixels width and 16 / 8 = 2 pixels height.
So dialog units came out exactly as 2 x 2 pixels.
But later on with WIN32 windows could scale the system fonts and on different displays the dialog base unit did not come out exactly 8 x 16 pixels. Now you had a problem when scaling.
I liked how Dialog units worked, but they were flawed when scaled. So I decided a different route. Why not define a dialog base unit in a similar way by getting the average the current system font (even variable width) to define an internal character unit size. But instead of defining coordinates using whole numbers like dialog units do, why not defined character units using floating point. This would provide pin-point accuracy. You could define a coordinate using decimals, like 1.75 horizontal character unit and 2.5 vertical character units.
No matter how the end users system defined the font scaling, you would pixel accurate positioning. I actually did this in a GUI framework and surprise, it works amazingly well.
By building a Visual Designer using character based units which are floating point, you can get very accurate scaling for any system. Just have the GUI framework convert internally the character units to what ever units you desire and at any scaling.
Now add to this your own auto-resize engine (for when forms are resized at run time by the user) for forms and controls and then you have a much easier system for scaling and it works well even with the WIN32, which was not designed well for handling such things like later GUI frameworks in Windows did.
I know it works well, since I have already done this in my own GUI framework and it is WIN32 based. For those who build Visual Designers, why not trying using this approach so the Designer uses its own character unit with floating point and you likely could have it scale to almost any other GUI framework you desire to support.
|
|
|
|
|
Yes I know the Dock and Anchor options, but I can't do something like say the width of my text box is 80%.
|
|
|
|
|
Sure you can. You can add code in an event, or size it for 80% of the design window, and let it auto size after that. I’ve done that in my WinForms apps. Just think through what tools are in your toolbox and use them.
|
|
|
|
|
For HTML, I never used any designer GUIs. My XAMLs are usually hand-coded, too, but I like to use the designer as a preview tool. I also have some cases of Windows Forms dialogs, where for some reason the visual designer doesn't work, and I must say, this decreases my productivity by at least 50 %.
|
|
|
|
|
If a developer had twin boys, would they be named Benjamin and Benjamax?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Benjamin and Benjamout?
Message Signature
(Click to edit ->)
|
|
|
|
|
Only for quadruplets, since they'd be incomplete without Benjadbg en Benjanull
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Benjamin and Benjambetween?
|
|
|
|
|
Certainly better than Denise and Denephew :P
And definitely not Johnny Tables!
|
|
|
|
|
Bobby Tables?[^] - and his brother SQL Injection?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Yes, Bobby
|
|
|
|
|
If a programmer is convicted of murder and sentenced to death, would the executioner use SQL Injection?
|
|
|
|
|
And the Mexican fireman's kids, Jose and Josbee.
|
|
|
|
|
Jason and Jasoff?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
We have 2 Jason's in the office... Json and Jsonb
|
|
|
|
|
0 and 1. Simple naming-scheme, easy to write.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I think I would name mine
Bit
Byte
and if I had more perhaps
int
long
double
etc...
To err is human to really mess up you need a computer
|
|
|
|
|
Copy'n'Paste?[^]
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
That sounds backwards to me - the biggest one being he smallest one. Sort of inverted logic.
|
|
|
|
|
I have twin sons - my choice was Noel and Leon but this was not allowed. Funnily one of them is, in fact, called Benjamin
|
|
|
|
|
How does the other one feel about that?
|
|
|
|
|
I've never asked, he's never offered an opinion
|
|
|
|