2014-10-21 33 views
5

Próbuję zmienić motyw w GTK # (OS: Windows, IDE: Xamarin). Ale dostaję następne wydania:Motyw Gtk w GTK # (Windows)

  1. Udało mi się znaleźć tylko jeden motyw, który poprawnie renderuje, jest to "Orta". Wszystko było dobrze, z wyjątkiem opóźnień i zamarza. Tu jest mój kodu:

    string Resource_File = "Orta\\gtk-2.0\\gtkrc"; Application.Init(); Gtk.Rc.AddDefaultFile (Resource_File); Gtk.Rc.Parse (Resource_File); MainWindow win = new MainWindow(); win.Show(); Application.Run();

    Kiedy zmienia rozmiar kratkę lub klikając na przycisk mam GUI zawiesza (I already asked about this). Ten problem występuje tylko podczas korzystania z tego motywu, a pozostałe motywy działają poprawnie. Użyłem wyszukiwania i znalazłem kilka opinii, o tym, że jest to spowodowane użyciem Kairu do renderowania grafiki (one of them).

  2. gdy próbuję użyć innego motywu wiele elementów graficznych nie poprawnie renderowane w moim GTK # aplikacji, ale są one poprawnie renderowanie w GTK Theme Selector. Jeśli motyw jest wyświetlany poprawnie w selektorze motywów GTK, to próbuję użyć wybranego pliku gtkrc w mojej aplikacji Gtk # (jak pokazano w Przykładzie z "Orta"), ale prawie zawsze większość widżetów nie jest wyświetlanych poprawnie (here is an example)

więc mam kilka pytań:

  1. Jak wybrać temat pracy?
  2. Jak ustawić motyw dla GTK # (Windows)?
  3. Co Gtk # aplikacji open source za pomocą tematu i jak?
  4. Jaki inny sposób na zmianę stylu GUI w aplikacji GTK #?
  5. Dlaczego motyw "Orta" zatrzymuje się?

Potrzebuję twojej pomocy! Dzięki!

Odpowiedz

2

Wiem, że to stare pytanie, ale ostatnio walczę z tematami.

Okazuje się, że podczas uruchamiania aplikacji Gtk # z Xamarin pojawiają się problemy z motywem, ponieważ wydaje się, że niektóre motywy "przypominające Windows" są wymuszane na kodzie.

Podczas uruchamiania aplikacji z Xamarin Studio, w zależności od platformy .Net (Microsoft .NET 4.5, Mono 3.3.0, Mono 4.0.1) zachowanie było inne. Miałem ostrzeżenie z Mono 3.3.0, mówiąc, że nie można znaleźć silnika "Xamarin".

skończyło się z następującego kodu:

Application.Init(); 
Gtk.Settings.Default.ThemeName = "Theme/gtk-2.0/gtkrc"; 
Gtk.Rc.Parse ("./Theme/gtk-2.0/gtkrc"); 

Gdzie gtkrc jest moim tematem. Bez ustawienia domyślnej nazwy motywu nic nie działało poprawnie. Nie posunąłem się zbyt daleko w dostosowywaniu mojego tematu, więc nie mogę stwierdzić, czy rozwiązuje on każdy problem z motywem.