Zainstalowałem testowo Mono w formie maszyny wirtualnej VirtualPC. Tam od razu jest już Suse Linux ze srodowiskiem Gnome, pakiet Mono i kompilator MonoDevelop.
Zauważylem, że żeby odpalic aplikacje napisaną w Windows, to trzeba uruchomić konsole, przejść do katalogu i dać polecenie: mono NazwaPli.exe
Po chwili program się uruchamia i działa. Tylko jest mały problem.
W przypadku domyślnej instalacji Linux w maszynie, okna programów są większe niż być powinny.
Na poniższym ekranie jest uruchomiony prosty przykład napisany w Visual Studio 2005 i po lewej stronie widać okno uruchomione na Linuxie, a po prawej stronie, dla porównania wielkości, jest nałozone okno w systemie Windows.
Zauwazylem, że jak się wczyta projekt do MonoDevelop i skompiluje się w kompilatorze i uruchomi, to jest ten sam problem.
Zauważyłem, że przyczyną jest rozdzielczość ekranu. Metodą prób i błędów znalazłem, że prawidłowa rozdzielczość to 85dpi i wtedy wielkość okien jest prawidłowa:
Ponadto zauważyłem, że istnieją dwa interfejsy formularzy: Windows Forms i GTK#. programy w Windows Forms mają ten problem, ponadto, w MonoDevelop nie mogę znaleźć edytora formy. Natomiast przy formach GTK# ten problem nie istnieje, forma ma zawsze tą samą wielkość bez względu na ustawienia DPI i wielkość czcionki.
Gdzie i co ustawić w projekcie w Visual Studio, żeby formularz nie był "czuły" na ustawienie rozdzielczości dpi ekranu?
Czy można Mono tak skonfigurować, żeby Windows Forms zawsze wyświetlało okna bez skalowania?
Jak włączyć edycje formularzy dla Windows Forms w MonoDevelop?