我正在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。