I just recently converted my plugin interfaces from WPF to Eto.Forms. I am using Eto.Forms.Dialog extensively. The layouts are simple but contain many controls (dropdowns and text boxes).
The ShowModal() function seems to be very slow and the dialog only shows up a few seconds after a button click in Grasshopper / Rhino6.
Is there a trick to speed up the Eto interfaces or a best practice regarding display performance for Eto that I might be missing?
// builds a nested layout with tab controls and pages with about 100 controls (text boxes, radio buttons, dropdowns etc.) each
inputForm = new DialogEnergyResults(settings, ref resSet);
// this takes longest and seems to be causing the main delay.
With WPF there was no noticeable lag.
Eto is a wrapper around the native framework, it’s probably initialized each time you call a dialog box.
If so, and if you use your dialogue extensively. I think that defining your dialogue as static should improve speed.
Does your dialog appear slow the first time or everytime?
it is slow every time. slightly slower on the first open
Thanks a lot for your reply. This does help a bit but does not really solve it entirely.
There is this thread on GitHub that suggests that some parts of the Eto code need to be deactivated to suppress unnecessary layout calls.
@dale Is there a chance the Eto dlls that ship with Rhino will be optimized for faster layouts?
Without a working sample (i.e. code) that demonstrates the slowness you are seeing, there isn’t much we can do to help - sorry.