To that list i would add a proper csproject setup.
There’s so many ways around setting a proper csproj with eto.
with or without RhinoWindows, with or without original wpf … net7.0-windows or net7.0 etc etc. How to link to existing Windows.Forms to still have grasshopper context menu overrides and Color class… lots of confusion tbh.
I have an eto enabled project atm and trying to add xaml code but can’t get it to work and can’t find any examples. Even InitializeComponent() is non existing. (Edit: that is solved with adding Xaml.Portable to my NuGet)
And you could almost assume that people did their WPF homework from other sources. assume people know MVVM, WPF and XAML.
Give an overview of the existing Rhino helper classes, like the Rhino.UI.ViewModel.
Show styling, binding, - again frame it to an audience who just left their WPF styling and binding tutorials online and would like to apply that to an Eto project.
Is there something the latest Rhino templates or Eto templates don’t cover you’d like in particular? You should be able to use them to get going for basically anything without issue.
This guide is essentially cross platform and sets up the csproj ready for Visual Studio or vscode.
I’m just documenting Eto and I don’t have plans to document other UIs really, Eto is already quite a big project.
I’m going to make as few assumptions as possible so that anyone can learn.
I started covering this in the Rhino Specific Eto section here Rhino - Rhino specific Eto but I agree more is needed.
This is on my plate. But it’s tricky.
Is there something specific missing from the below docs about binding I should add?
Other things I’d like to see examples of is the drawables David is making for GH2, for instance the gradient mapper or a standard gh component including binding/events. The reason is that Eto.Drawable is the only thing we can customize 100% (afaik), yet its difficult to master and turn into actual interoperable ui components.
See the gradient mapper here https://developer.rhino3d.com/guides/eto/what-is-eto/
This I can do, the SVG Editor workspace is 100% Drawable and it’s got a lot going on. I do want to create a nice juicy Drawable example. A colour picker would be a good idea.
Start with a simple custom button to get a hang of it and gradually increase complexity. It’s essentially a canvas with a bunch of events your control can react to. Super powerful.
+1 For more Eto Drawable examples. I’m pretty “deep” in drawables now and I feel like I’m barely scratching the surface… But essentially I’ve realized there’s no point to use Eto without drawables (if you are trying to visually customize things deeply) because the standard Eto components, well very helpful, have very limited visual styling opportunities.
I felt fairly discouraged with Eto being a solution UNTIL I realized that David’s work and @mrhe work he has shared was done with Drawables primarily and now it’s all I use but it’s been a painful trial and error process without many examples to test hands on. Thankfully these forums are full of helpful users willing to share tips along the way!
Eventually I hope to contribute to a user submitted “drawables library” of basic, modern UI elements but ones that allow more robust graphic control. Too busy right now… but that’s where my heart is at haha
I’ve been following a lot of your posts because I’ve always wanted to get into ETO. The more questions you post the more the AI has to draw from haha! The AI is starting to haul ass on ETO forms. Since they can be initiated with the actual code (and in my opinion maintain readability) I’m thinking that this might accelerate the adoption of ETO forms. The drawables part however is not very well explored.
I’m just finishing up some quite thorough docs on Cells, GridViews and TreeViews as they were requested first AND I need to understand them for a UI I’m writing .
Drawables will be next up after the Grids segment. The trickiest part of docs, besides finding the time is thinking of a good example that really focuses on the thing being documented.
This is great! Also one of the pieces of Eto I find most confusing as anytime tables and grids are involved my brain wants to check out on me… sorry Excel.
Dragging a control from one form onto a droppable zone of another form (sort of a cut/paste or copy/paste where either the control gets duplicated or removed from one form and added to the other):
Dragging an external file / file icon from an external source onto a droppable zone of a modal dialog or non modal would be fine as well (in this example “browse” would open the Rhino file explorer or import):