There hasn’t been an official Eto release with this API just yet, though I can poke a few buttons to release that if necessary. Do note that if you are using Eto with Rhino, you should be using Eto.Wpf from the RhinoWindows 8.7+ nuget package.
Thanks @curtisw!
Is this available in Rhino 7 as well? Instead of referencing RhinoWindows, I’d rather stick to RhinoCommon and add Eto.Platform.Wpf with the ExcludeAssests = "runtime"
flag:
<ItemGroup Condition=" '$(RhinoVersion)'=='7' ">
<PackageReference Include="RhinoCommon" Version="7.36.23346.16351" />
<PackageReference Include="Eto.Platform.Wpf" Version="2.7.0" ExcludeAssets="runtime" />
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2420.47" />
</ItemGroup>
No, sorry. These APIs are new in Eto as well. The only existing one you could potentially use (via reflection, as it is not public) is Eto.Win32.ScreenToLogical(this Eto.Drawing.Point point, swf.Screen sdscreen = null, bool usePerMonitor = true)
.
As for your error, you’re running into problems because you’re using Eto.dll from RhinoCommon, but Eto.Wpf from Eto.Platforms.Wpf. You can get around this by referencing both Eto.dll’s but one with an alias, then casting through object
. This is not for the feint of heart. A better way to only reference Eto.Wpf from RhinoWindows is something like so:
<ItemGroup>
<PackageReference Include="RhinoCommon" Version="7.36.23346.16351" />
<PackageReference Include="RhinoWindows" Version="7.36.23346.16351" GeneratePathProperty="True" ExcludeAssets="all" />
<Reference Include="$(PkgRhinoWindows)\lib\net48\Eto.Wpf.dll" Private="False" />
</ItemGroup>
Hope this helps.