Hey @michaelvollrath,
Eto’s co-ordinates are in logical pixels which is not quite compatible when you have different DPIs, or even multiple screens (due to how Windows treats coordinates in system-dpi aware mode vs Eto’s multi-monitor dpi aware mode). To convert a point in physical pixels (e.g. what you get from the viewport, or windows forms APIs, etc), you can use Rhino.UI.EtoExtensions.ToEtoScreen(myPointOrRect)
. This API was added in Rhino 8.7, and directly calls Eto’s Eto.Forms.WpfHelpers.ToEtoScreen()
in Eto.Wpf.dll.
There’s also a Rhino.UI.EtoExtensions.ToSystemDrawingScreen()
to convert in the opposite direction, if needed.
Hope this helps!