Replies: 3 comments
-
Very nice! It would be great if we could get your changes upstream into |
Beta Was this translation helpful? Give feedback.
0 replies
-
Sure, not a problem. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
Recently I decided to add new features to my fork of this project.
I have already created/converted number of WinForms components which are not available in the core library (html, datagrid, calendar, navbar, map, EGIS shapefile component, some charts, checked listview etc.)
Code for many of these is still messy and I need to do lot of cleanup, but they work fine.
These will be available on my github profile.
Initially, here is the port of excellent HtmlRenderer.
https://github.com/dax-leo/Modern.Forms.HtmlRenderer
(precompiled release available)
Still not everything is ported, but I am 95% there.
Core library Modern.Forms can't be re-used from your Modern.Forms code, as I upgraded it with some new features and bug fixes.
One important feature is rewrite of control buffers. I didn't like having buffer per Control object. That is memory and CPU killer for larger applications. Hence, I modified it to work on Form level using Translate Canvas functions and simple recursive call to render everything below ControlAdapter level.
Due to this simple change I observed significantly lower memory usage, particularly on high resolution monitors.
There is also IgnorePixelScaling option I added, which is available on global level, but something I would like to implement on Control level as well. This comes handy when updating some legacy WinForms libs and avoiding writing scaling implementation right away. I am not using it for any component, but it's there if needed.
Interestingly, I built one application for my company using Modern.Forms and Avalonia UI.
Modern.Forms one had 3-4x lower memory consumption and in some cases even better UI responsiveness. I am just guessing but most likely due to direct Canvas rendering and less abstraction in-between.
That is already visible in the html renderer component. Scrolling large tables (perf. html view) using Avalonia port and this one slight difference in response time can be observed. This is why I like Modern.Forms, it's fast, efficient and without xaml/wpf nonsense. For simple business applications this is perfect.
https://github.com/dax-leo/Modern.Forms.Toolkit
More to come soon.
Beta Was this translation helpful? Give feedback.
All reactions