Schön wäre es natürlich gewesen, wenn es unter Windows wie mit Windowskomponenten und unter Linux mehr linuxmäßig und auf'm Mac macisch aussehn würde.
So isses ja im Prizip doch immer eine geskinnte Anwendung, welche sich nicht ins System eingliedert.
Dafür gibt es aber kein UI Kit, und um es auf dem jeweiligen System 'Nativ' aussehen zu lassen musst Du jeweils die native
API benutzen.
Um das Cross-Platform zu machen, musst Du diese
API abstrahieren. Um das sauber zu machen, musst Du Dich auf den kleinsten gemeinsamen Nenner einigen. Wenn Du das tust, stehen Dir auf den spezifischen Plattformen nicht alle Features zur Verfügung, die Du bräuchtest, die es auch überall irgendwie gibt, die sich aber so massiv unterscheiden dass Du sie nicht gemeinsam abstrahieren kannst.
Dazu kommt dann noch, dass bestimmte UI Konzepte wie z.B. die native Mac-Oberfläche zwangsläufig MVC benötigen, das mit einem Forms- und Eventbasierten Konzept aber nicht abbildbar ist.
Kurzum: Es wird aller Vorraussicht nach nie ein X-Platform-System geben, dass überall nativ aussieht. Aus genau diesem Grund empfehlen richtige Cross-Platform Entwickler ja auch, seine Anwendung mehrschichtig aufzubauen, UI von Logik zu trennen und für jedes System eine native
GUI mit dem jeweiligen am besten passenden Toolkit zu erstellen, und den non-
Gui-Code hinten halt wiederzuverwenden.
Dabei kommen dann am Ende Lösungen bei raus, die auf jeder der unterstützen Plattformen richtig aussieht, sich auch richtig anfühlt und vor allem - aus Entwicklungssicht - auch besser wartbar weil entkoppelter ist.
Natürlich ist das mehr Aufwand, aber der rentiert sich
imho, weil die Software besser angenommen wird und auch das Aufräumen in der Architektur macht sich auf längere Sicht mehr als bezahlt.