我在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的外观:
它在.Net引擎下的运行方式:
感谢您的关注:)。
答案 0 :(得分:4)
好吧,我找到了问题的答案:D。
我没有尝试加载特定的GTK主题,但解决了它以使.Net正常工作而无需复制程序目录中的所有DLL文件。
我在Xamarin开发论坛中找到了这个帖子:
在这个线程中,Xamarin开发人员解释了他们如何解决依赖关系加载问题。关键是在 Application.Init()调用之前调用 CheckWindowsGTK 方法。 CheckWindowsGTK在此文件中由Monodevelop源定义:
提示:仅当程序在Windows上运行时才调用CheckWindowsGTK非常重要。