如何在MS Windows上加载GTK Sharp主题

时间:2014-09-22 11:11:39

标签: .net windows mono themes gtk#

我在MS Windows上使用Xamarin Studio 5.4编写GTK Sharp(v2.12)应用程序。安装的Mono版本是3.2.3(但是我使用.Net工具链进行编译,因为Xamarin不允许我使用Mono工具链进行编译)。

案例是当我从Xamarin Studio运行应用程序或使用Mono时,我有一个相对不错的外观&感觉,但是当我使用.Net运行应用程序(双击可执行文件)时,外观&感觉太可怕了。

我试图欺骗应用程序加载一个体面的主题......但是当我从.Net这样做时它什么也没做(但是当我使用Mono时,它很容易看到变化。)

这是我尝试的代码,但不起作用(我有一份GTK主题rc文件的本地副本):

// It works on Mono, but not on .Net
Gtk.Rc.Parse("Resources/GTK/windows-theme.gtkrc");

我也尝试过:

// This does not work at all (on MS Windows)
Gtk.Settings.Default.ThemeName = "MS-Windows";

但即使使用Mono引擎,这也不会改变任何事情。

这是应用程序使用Mono的外观:

enter image description here

它在.Net引擎下的运行方式:

enter image description here

感谢您的关注:)。

1 个答案:

答案 0 :(得分:4)

好吧,我找到了问题的答案:D。

我没有尝试加载特定的GTK主题,但解决了它以使.Net正常工作而无需复制程序目录中的所有DLL文件。

我在Xamarin开发论坛中找到了这个帖子:

在这个线程中,Xamarin开发人员解释了他们如何解决依赖关系加载问题。关键是在 Application.Init()调用之前调用 CheckWindowsGTK 方法。 CheckWindowsGTK在此文件中由Monodevelop源定义:

提示:仅当程序在Windows上运行时才调用CheckWindowsGTK非常重要。