WinForms, Mono i Ubuntu Linux

WinForms, Mono i Ubuntu Linux
AN
  • Rejestracja: dni
  • Ostatnio: dni
0

Jakiś czas temu zrobiłem na własne potrzeby aplikację w C#, która działa w Windows. Aplikacja tworzy znaczniki na ekranie, w rzeczywistości taki znacznik to jest mały formularz bez ramki, o wielkości ok. 20x20pikseli.

Teraz chciałbym używać aplikacji na Linux najmniejszym nakładem pracy (właściwie to chodzi o otrzymanie jednej aplikacji działającej na obu systemach). Bez żadnych zmian ta aplikacja działa poprawnie, za wyjątkiem jednego elementu: Formularz nie daje się zrobić o wielkości poniżej ok. 100x25. Próbowałem minimalny i maksymalny rozmiar, jak tutaj: https://stackoverflow.com/questions/8153146/windowsforms-and-mono-limitations-of-the-minimum-window-size , ale to nie daje żadnego efektu.

Pomyślałem też, że spróbuję zrobić formularz z maską przezroczystości, gdzie sam formularz może być nawet 200x200, ale nieprzezroczysty będzie kwadrat 20x20 pikseli. Przetestowałem tego gotowca:
https://www.codeproject.com/Tips/1224958/Winforms-Transparent-Background-Image-with-Gradien
W innym komputerze z Windows kompiluje się i działa prawidłowo (dostaję formularz o nietypowym kształcie), ale na Linux (po usunięciu "nietypowego" skojarzenia tła z bitmapą i zastosowaniu standardowego BackgroundImage) nie działa, jakby ignorował ustawienie koloru przezroczystego.

Po prostu robię formularz typu System.Windows.Forms.Form, ustawiam FormBorderStyle=None.

Czy da się w jakiś sposób zrobić formularz WinForms (Windows.Forms), który na Linux będzie mógł mieć wielkość 20x20 pikseli, a nawet mniej?

WileCoyote
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 20
1

Jeśli masz "zwykłego" (.NET Framework) Winformsa i uruchamiasz go na linuksie przez Wine to poczytaj o Windows Forms Core.
Powinno pomóc rozwiązać Twój problem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.