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

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

这种情况是,当我从Xamarin工作室运行应用程序或使用单声道,那么我有一个相对漂亮的外观和感觉,但是当我运行应用程序使用.Net(双击可执行文件),那么外观和感觉是可怕。

我试图欺骗应用程序来加载一个体面的主题…但是,当我从.Net(但是当我使用单声道然后很容易看到更改)它什么都不做。

这是我试过的代码,但不起作用(我有一个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"; 

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

这是应用程序看起来如何使用单声道:

在这里输入图像说明

以及它如何运行在.net引擎下:

在这里输入图像说明

感谢您的关注 :) 。

那么,我已经找到了我的问题的答案:D。

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

我在Xamarin开发论坛中发现了这个线程:

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

提示:只有当程序在Windows上运行时,才能调用CheckWindowsGTK。