I’m glad to see that Rhinocero For Mac has introduced dark mode, and I think it’s time to introduce it to the Windows version.
Rhino’s window uses Win32 controls, but it doesn’t matter, we don’t expect Rhino to rebuild the entire application using UWP, which is neither realistic nor necessary.
But Microsoft has provided a way for Win32 programs to use common controls:
Windows 10 now enables you to use UWP controls in non-UWP desktop applications so that you can enhance the look, feel, and functionality of your existing desktop applications with the latest Windows 10 UI features that are only available via UWP controls. This means that you can use UWP features such as Windows Ink and controls that support the Fluent Design System in your existing WPF, Windows Forms, and C ++ Win32 applications. This developer scenario is sometimes called XAML islands.
Announced at Build 2018 during the keynote: https://developer.microsoft.com/en-us/events/build/content/announcing-uwp-xaml-islands
XAML Islands Demo: https://developer.microsoft.com/en-us/events/build/content/fluent-design-system-demo
Documentation here: https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/xaml-host-controls
We want at least window borders, dialogs, file selectors, etc. to use common controls, and if possible, use common controls in the right panel. This will build a unified look and experience.
Creating custom controls is great, so you can use dark mode for self-built controls, because it depends on Mcneel, not Microsoft. You can easily turn the entire interface into dark without worrying about whether Microsoft is willing to bring Win32 Comes with native dark mode functionality-even so, rhinos with custom controls may not be able to enjoy it.
We already know that you are in the progress of (re) writing sizeable portions of the UI using Eto.Forms so that we can have features working on both Windows and Mac. The current Rhino Mac WIP already hosts a lot of that. On Windows we still use mostly MFC, but the work done by @maxsoder brings a lot into Eto.Forms. I’d imagine that sometimes after the Rhino Mac v6 version is released we’ll see more of an effort of actually switching the UI to the Eto versions that already exist.
So all we need is a shell and a dark title bar. In addition, all custom controls can be turned dark. Maybe this is the fastest way to achieve the goal. Of course, if you are willing to rebuild the toolbar on the left and the right panel with modern controls, we will be happy to do so.