|
Eddy Vluggen wrote: You need something that screams "untested" with animations. Exactly.
Seriously though, I'm not against using Winforms, it's what I know best. It's just that it doesn't look modern. And appearances mean everything to commercial success.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Yeah, must look new, instead of tested and trustworthy
So do the WPF thingy? Make your buttons animated. Throw out decades of research.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Come on now. WPF is far more than how you describe it. I can't remember the last WPF app that had animated buttons. I've since moved on to HTML5 but I am still impressed with the comprehensiveness of WPF.
And it's the same low-level APIs at the end of the day - WPF is just an abstraction (and it's been around a LONG time).
|
|
|
|
|
There are a number of excellent component vendors e.g. DevExpress and Telerik who make WinForms apps look sensational.
Garry Lowther
CEO and Founder
TriSys Business Software
Cambridge, England
www.trisys.co.uk
|
|
|
|
|
We use DevExpress with WinForms for our commercial desktop app. It's style controller is great for giving a modern look. However, DevExpress has the issue of it can do anything - if you set the properties just right. We spend more time getting the exact combination of properties to achieve the desired effect than anything else when using DevExpress. That said, their online support is excellent and free. They will frequently give you code samples of how to make something happen with their tools.
As for the style controller, we have a master base form that all other forms inherit. This is used to set the style for all components recursively. Then, in child forms' constructors, we just call the method base.SetStyle().
Bond
Keep all things as simple as possible, but no simpler. -said someone, somewhere
|
|
|
|
|
The image below corresponds to a software I made exclusively using Winforms. I designed my own controls for Buttons (Gradients, 2 lines of text with different fonts and colors), DataGridView, Labels (Gradients Horizontal and vertical text [Up and Down]), Closable Tab Well, and some others. Usually Nobody recognizes it as Winforms, but it works exactly as what it is. Old reliable WINFORMS.
OneDrive[^]
So you can see that it is possible to make "Modern Looking" software in this easy-to-work-with GUI.
I hope you can see it, because I never posted any images in CP before
|
|
|
|
|
|
That's awesome! I don't have the graphics skills to do that.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I can give you the controls so, if you want to work with them you are very welcome without any royalties. I don't have manual or help, but I think with a little effort you can master the possibilities. Usually they are grouped under "GV Options" in properties.
Some times, I want to write an article in CP about these controls, but it is a looooooong task. The controls I've designed are: (some are Spanish names )
BotonGradiente => (The buttons you can see in the graphic) 3 colors for gradients in any direction and percent's, 2 text lines with different fonts and colors, shadow for the texts (any color), Icon,...
BotonMenu => Is a button with a little arrow used to show a ContextMenuStrip. Similar to BotonGradiente.
GradientLabel => 2 colors, Linear or Tubular gradient, horizontal or vertical gradient, Hor. or Vert. text (Up and Down)
Linea => (line) Draws a line of any pixels width, including gradient colors that change direction if the line is horizontal or vertical.
Conmutador => (Switch) Is an On / Off button with a behavior similar to checkbox, but fancy with different buttons and gradients, with configurable texts for ON and OFF
Check and Radio => The same controls used by Winforms but with the ability to use icons for Checked / Unchecked states.
ClosableTab => Same TabControl but with gradients and font for the tabs, for the background of the tab well, ability to close a tab (and hide this if you need) Color and shadow for the tabs.
MultiColumnCombo => This control is based in the work of kennedy_franklin which has an article in CP about it.
Progreso => Is a progress bar with linear and tubular gradient, and also show or hides the percent value.
Boton => Is another button that lets you to choose 3 state images: normal; pressed; disabled.
TitlePanel => It is like the one you can see in the graphic. A Panel with a title bar included (Is a gradientLabel so has the same properties). The title can be horizontal or vertical (left side) the panel area can have a 2 gradient and optionally the panel is collapsible and grows to its contents when it or one of its controls received the focus and collapses when lost it.
Fecha => DateTime Calendar control. Derived from DateTimePicker but when you enter the date with the keyboard, the cursor jumps automatically to the next fiels : yyyy -> mm -> dd and then to yyyy again.
GVGrid => It is a DataGridView Control but with the possibility to change the direction of the cursor when you leave a cell pressing ENTER to down or Left. It also has a Calendar Column and the possibility to sort by several columns Ascending or Descending independently (Sorting is based on the work of PTA_UK)
|
|
|
|
|
Sorry, but those buttons date the app to at least ten years ago, the title font even more like 30 years (I know because I was there). The icons are nice, but need more alpha channel to prevent jaggies.
|
|
|
|
|
I agree totally with this. Like it or not, the UI everyone understands looks like Word 2002. It's old. It's stodgy. But everyone can find commands in it. It operates as expected.
|
|
|
|
|
Nothing wrong with WinForms, and with just a little work using GDI+ they can look like modern UI, but with the reliability you expect from WinForms.
About 2 jobs ago, I worked on wrappers to update the 'feel' of the old WinForms controls. That was a fun project.
I've never liked WPF, it always seamed half baked and you couldn't get into doing manual drawing like you could with WinForms. UWP at least had the Win2D library that allowed you to write your own DirectX drawn controls.
|
|
|
|
|
What most people fail to understand is that XAML controls are inherently scalable, which is one reason that Visual Studio 2010 was rewritten in WPF. While you could certainly create your own controls in either WinForms or XAML, I’ve never seen custom controls implemented with accessibility or true internationalization in mind, though that is also a rarity with even HTML. I recently learned of margin-block and margin-inline and it has made me reevaluate all layout work I’ve ever done, AKA blown my mind.
Besides the skinning of controls, the one thing that constantly changes is the paradigm of UX…for better or for worse. Discoverability is horrible these days (Windows 8, swipe left/right, long “tap”) and seems to be overcome only by social reinforcement: old farts need not apply.
|
|
|
|
|
It's the next iteration of UWP (and XAML); which is better than WPF; which is better than Windows Forms.
The simple fact that Windows Forms doesn't support templating, puts it a generation behind the others.
The Win UI / UWP controls perform better than the corresponding WPF controls (says MS).
If you have no baggage, Win UI 3 seems like the logical choice.
If you're big on "spread sheet type data grids", you'll still need a "toolkit" for that (or roll your own). "Fluent design" apparently doesn't believe in them; and with listviews and templating, you don't need them either (IMO).
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
Thanks, that's what I suspected. I think I will try it.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Gerry Schmitz wrote: The Win UI / UWP controls perform better than the corresponding WPF controls (says MS). I wonder how much faster? Because WPF is appalling for adding lots of objects to a parent control, as can be seen at the beginning of the following video:
My new DynamicDataDisplay.Reloaded project - YouTube
|
|
|
|
|
The "other objects" are a result of the generic / standard templates for the various controls. There is no "button" per se; it's constructed from a rectangle and a border. Something that is "hidden" in Windows Forms, whereas in WPF / UWP you could say to use a circle and you get a round button; with one line / paramter.
I needed a row of toggle buttons to act like radio buttons (I didn't want "fish eyes"). Styling them as RB's made them act like RB's (but look like toggles); including syncing each other. One parameter.
WinUI is faster because it's (re)written in C++ (?) vs ? It's also decoupled from the OS.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
I am looing forward to utilizing "Dear ImGui" Its' text based demo programs are blazingly fast in responding to user actions As it used for game graphics I assume it is fast there also but my project will be mostly text so graphics speed does not concern me Thanks however for bringing "WinUI" to our attention I should probably look into it as well for that project I will probably choose the most responsive - Cheerio
|
|
|
|
|
Dear ImGui is not used for graphics, but is used with a GPU to render a UI.
|
|
|
|
|
Unless you use Uno-Platform. WinUI is Windows only.
WinUI also requires you to package your app in some new Win10+ app package (so thats a limitation if you target Win7/8).
Once Silverlight died, MS lost touch (completely) with portable UI (HTML/JS is a joke of a solution ppl are stuck with sadly [while WASM should have negated this already]). Everything in the UI space is constantly subject to die off because no one in the space seems to know how to engineer here. Its been baffling me for years now.
|
|
|
|
|
another elephanting UI approach from Microsoft? Oh, right, we need a new way to handle icons with rounded edges.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Maybe if they keep trying, they will eventually get it right.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
lol, right... shall I bring up COM, COM++, DCOM and activeX?
That was my introduction to Windows development. After suffering through that and then on over the years with MS, they just rename $hit for the sake of it.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Woo!
I'm about to achieve maximum hardware efficiency, using all the RAM and all the cores of my little device to render a page of an epub book. It will render the current page and the next page (or previous page if you're moving backward) so that you can flip pages while reading in a way that appears to be more responsive. Basically, I'll have the next page rendered so you can change pages as soon as you're done reading the page you're on.
This ESP32 device was never intended for something this intense. The minimum hardware requirements I've seen previously for an epub reader is 512 times the RAM (not a typo!) and at least 4x the CPU power of this device. If I'm being completely fair comparing a WROVER rather than a WROOM it's still 64 times the RAM for a traditional minimal epub reader.
The final frontier for me is CSS and code size. The former is doable if I'm willing to live with limitations. It will support just enough to render text for a book okay. The latter is doable I think, but if it's not I'm dead in the water. My code has to fit on the device.
Wish me luck.
Real programmers use butterflies
|
|
|
|
|
Good luck!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|