2014-10-21 14 views
5

Ich versuche, das Thema in GTK # zu ändern (OS: Windows, IDE: Xamarin). Aber ich bekomme nächste Ausgaben:Gtk Thema in GTK # (Windows)

  1. ich in der Lage war nur ein Thema zu finden, das richtig macht, ist es „Orta“. Alles war gut, außer lags und friert. Hier ist mein Code:

    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();

    Wenn ich die Größe des Paned ändern oder Klicken auf die Schaltfläche I GUI erhalten friert (I already asked about this). Dieses Problem tritt nur bei Verwendung dieses Themas auf, bei den anderen Themen funktioniert alles leidlich. Ich habe die Suche genutzt und ein paar Meinungen dazu gefunden, dass dies auf die Verwendung von Cairo zum Rendern von Grafiken zurückzuführen ist (one of them).

  2. wenn ich versuche, ein anderes Thema zu verwenden, viele GUI-Elemente nicht korrekt in meinem GTK # Anwendung gemacht, aber sie sind in der GTK-Theme Selector richtig machen. Wenn das Thema in GTK Theme Selector korrekt angezeigt wird, versuche ich die ausgewählte gtkrc Datei in meiner Gtk # App zu verwenden (wie in Beispiel mit "Orta" gezeigt), aber fast immer werden die meisten Widgets nicht korrekt angezeigt (here is an example)

    So

ich habe ein paar Fragen:

  1. Wie ein Arbeitsthema wählen?
  2. Wie setzt man ein Thema für GTK # (Windows)?
  3. Welche Gtk # Open-Source-Anwendung mit dem Thema und wie?
  4. Welchen anderen Weg, um den Stil der GUI in der GTK # App zu ändern?
  5. Warum "Orta" Thema einfriert?

Also brauche ich Ihre Hilfe! Danke!

Antwort

2

Ich weiß, es ist eine alte Frage, aber ich habe in letzter Zeit mit Themen gekämpft.

Es stellt sich heraus, dass beim Ausführen einer Gtk # -App, die mit Xamarin erstellt wurde, Themenprobleme auftreten, da anscheinend ein "Windows-ähnliches" Thema in den Code eingezwängt wird.

Beim Ausführen der Anwendung von Xamarin Studio war das Verhalten je nach .NET-Framework (Microsoft .NET 4.5, Mono 3.3.0, Mono 4.0.1) unterschiedlich. Und ich hatte eine Warnung mit Mono 3.3.0 und sagte mir, dass die 'Xamarin' Engine nicht gefunden werden konnte.

landete ich mit dem folgenden Code auf:

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

Wo gtkrc mein Thema ist. Ohne das Festlegen des Standardthemennamens funktionierte nichts ordnungsgemäß. Ich bin nicht sehr weit gegangen, um mein Thema anzupassen, also kann ich nicht sagen, ob es jedes Theme Problem löst.