2014-10-21 109 views
5

我試圖改變GTK#中的主題(操作系統:Windows,IDE:Xamarin)。但我得到的下一個問題:GTK#中的Gtk主題#(Windows)

  1. 我只能找到一個正確呈現的主題,它是「奧爾塔」。一切都很好,除了滯後和凍結。這裏是我的代碼:

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

    當我改變窗格的大小或點擊按鈕,我得到GUI凍結I already asked about this)。只有在使用此主題時纔會出現此問題,其他主題都可以使用。我使用了搜索並找到了一些意見,關於這是由於使用開羅渲染圖形(one of them)。

  2. ,如果我嘗試使用不同的主題,很多GUI元素的不正確我的GTK#應用程序呈現,但它們在GTK主題選擇正確渲染。如果主題在GTK主題選擇器中正確顯示,那麼我嘗試在我的Gtk#應用中使用選定的gtkrc文件(如示例中的「Orta」所示),但幾乎總是大多數小部件顯示不正確(here is an example

所以,我有幾個問題:

  1. 如何選擇合適的工作主題?
  2. 如何設置GTK#(Windows)的主題?
  3. 什麼Gtk#開源應用程序使用的主題和方式?
  4. 還有哪些方法可以改變GTK#app中GUI的風格?
  5. 爲什麼「Orta」主題凍結?

所以我需要你的幫助! 謝謝!

回答

2

我知道這是一個老問題,但最近我一直在與主題進行鬥爭。

事實證明,當使用Xamarin運行Gtk#應用程序構建時,會出現主題問題,因爲它看起來像是一些「類Windows」主題被強制進入代碼。

從Xamarin Studio運行應用程序時,根據.Net框架(Microsoft .NET 4.5,Mono 3.3.0,Mono 4.0.1),行爲是不同的。我用Mono 3.3.0發出警告,告訴我'Xamarin'引擎無法找到。

我結束了下面的代碼:

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

哪裏的gtkrc是我的主題。沒有設置默認主題名稱,沒有任何工作正確。我沒有深入定製我的主題,所以我不知道它是否可以解決每個主題問題。