我正在尝试更改GTK中的主题#(操作系统:Windows,IDE:Xamarin )。但我接下来的问题是:
我只能找到一个正确渲染的主题,它是“Orta”。一切都很好,除了滞后和冻结。这是我的代码:
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 ();
当我更改Paned或点击按钮的大小时,我会让GUI冻结(I already asked about this)。只有在使用此主题时才会出现此问题,其他主题都可以正常工作。我使用搜索并发现了一些意见,关于这是因为使用Cairo来渲染图形(one of them)。
如果我尝试在我的GTK#应用程序中使用不同的主题,许多GUI元素未正确呈现,但它们在GTK主题选择器中正确呈现。如果主题在GTK主题选择器中正确显示,那么我尝试在我的Gtk#app中使用所选的gtkrc文件(如“Orta”中的示例所示),但几乎总是,大多数小部件都没有正确显示({{3 }})
所以我有几个问题:
所以我需要你的帮助! 谢谢!
答案 0 :(得分:2)
我知道这是一个老问题,但我最近一直在与主题作斗争。
事实证明,当使用Xamarin运行Gtk#app构建时,会出现主题问题,因为它似乎有些像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是我的主题。没有设置默认主题名称,没有任何正常工作。我没有去定制我的主题,所以我无法判断它是否解决了每个主题问题。