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

2024-02-29

我正在 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 引擎下运行的样子:

感谢您的关注 :) 。


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

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

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

  • http://forums.xamarin.com/discussion/15568/unable-to-load-dll-libgtk-win32-2-0-0-dll http://forums.xamarin.com/discussion/15568/unable-to-load-dll-libgtk-win32-2-0-0-dll

在此线程中,Xamarin 开发人员解释了他们如何解决依赖项加载问题。关键是调用检查WindowsGTK之前的方法应用程序.Init()称呼。 CheckWindowsGTK 是在 Monodevelop 源文件中定义的:

  • https://github.com/mono/monodevelop/blob/master/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs#L490-L490 https://github.com/mono/monodevelop/blob/master/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs#L490-L490

HINT:仅当程序在 Windows 上运行时才调用 CheckWindowsGTK 很重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MS Windows 上加载 GTK Sharp 主题 的相关文章

  • 为什么当要求修剪“PRN.NUL”时,TrimStart 会更多地修剪字符?

    这是代码 namespace TrimTest class Program static void Main string args string ToTrim PRN NUL Console WriteLine ToTrim string
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 取消任务

    我尝试运行一个关于取消任务的简单示例 如下所示 CancellationTokenSource tokenSource2 new CancellationTokenSource CancellationToken token2 tokenS
  • 如何在完成之前从 ReplaySubject 获取最新值

    我需要一种方法来获取添加到 ReplaySubject 中符合特定条件的最新项目 下面的示例代码完成了我需要它做的事情 但感觉不是正确的方法 static void Main string args var o new ReplaySubj
  • Windows 窗口对接

    我想知道如何在 Windows 中将窗口停靠 捕捉到屏幕的一侧 最好使用直接的 Win32 API 我正在寻找的效果就像任务栏 一个在屏幕上有保留空间的窗口 因此最大化另一个窗口会使该窗口占据屏幕的其余部分 但使我的窗口保持在适当的位置并可
  • 为什么我只能用管理员权限才能导入Python中的某些模块?

    我正在努力解决 Python 2 7 中的一些奇怪问题 我写了一个很长的工具 在其中导入不同的模块 我必须首先使用它安装pip 该工具将在公司内部共享 不同的用户在其特定机器上拥有不同的权限 当另一个用户登录我的计算机 我在那里拥有管理员权
  • 当操作系统显示语言为非英语时获取本地时区标识符

    奇怪的是 TimeZone CurrentTimeZone StandardName根据计算机显示语言返回本地化名称 我想要一个可以提供给的程序化标识符TimeZoneInfo在下面的代码中 TimeZoneInfo timeZoneInf
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • 是否可以让 ASP.NET MVC 3 项目在 Mono 2.10 下运行?

    Mono 2 10 的发行说明建议支持 ASP NET MVC 3 0 和Razor http weblogs asp net scottgu archive 2010 07 02 introducing razor aspx using
  • 使一个对象只能被同一程序集中的另一个对象访问?

    每个业务对象都有一个包含 sql 调用的匹配对象 我想限制这些 sql 对象 使其只能由匹配的业务对象使用 如何才能实现这一目标 Update 格雷格提出了关于可测试性的观点 由于 SqlObjects 将包含非常特定于业务流程的 sql
  • 不在焦点时响应键盘? (C#、Vista)

    我正在尝试编写一个应用程序 只要按下 Shift 键 无论当前哪个应用程序具有焦点 它都会做出响应 我尝试过这个SetWindowsHookEx 与GetKeyboardState 但这两种方法仅在应用程序窗口具有焦点时才有效 我需要它在全
  • 由于索引无效,无法加载计数器名称数据 -Exception

    我使用 C 和 WPF 操作系统是 windows 7 Professional 和 Visual Studio 2012 SQL Server 2012 我在wpf中使用了Devexpress Grid 我想使用 ADO Net 服务器模
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 什么时候值得使用 BindingSource?

    我想我非常了解 BindingSource 类的作用 即在数据源和 UI 控件之间提供一个间接层 它实现了 IBindingList 接口 因此还提供了对排序的支持 而且我已经经常使用它 没有太多问题 但我想知道我使用它的频率是否超过了应有
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • jquery 1.5 模拟 ajax

    在 jquery 1 5 中 模拟 ajax 请求的推荐方法是什么 是使用ajax扩展传输吗 http api jquery com extending ajax Transports http api jquery com extendi
  • 允许在数据库项目中删除(一次)列

    我想在现有表中删除一列 当我简单地从表的创建脚本中删除它时 它将在部署时导致错误 数据丢失 我想允许 在这种情况下 列删除 你会怎么做 要禁用数据丢失错误 单击架构比较文件中的选项图标 取消选中 阻止可能的数据丢失 该设置将仅针对 1 次架
  • 如何使用 ControlsFX 实现自动完成文本字段

    我正在使用 ControlsFX 的最新版本 8 0 5 我想我需要一些关于自动完成文本字段的帮助 因为我对此很陌生 我从这里得到了这个代码here https bitbucket org controlsfx controlsfx pul
  • Android Tabhost 问题 - .setIndicator

    首先让我澄清一下 我已经提到了与 Android TAbhost 相关的问题 我已经用谷歌搜索了 Android Tabhost 但未能找到解决方案 我的问题是 如果有 有什么方法可以将标题文本 即指示器 放入选项卡中 我认为问题的根源在于
  • 允许访问 C++ 中的容器对象

    我有一个像下面这样的课程 class Foo private std map
  • Play Framework 2.2.1 - 不区分大小写的路由

    我是 Play 新手 目前正在使用 Play 2 2 1 我正在尝试为 路由 中定义的端点实现不区分大小写的路由 例如我在路线文件中定义了一条路线 例如 accessLicense 如下所示 GET accessLicense contro
  • Django-firebird 无法工作

    我下载了该文件夹并将其放入C Python27 Lib site packages django contrib gis db backends firebird 但是当我使用它时 给我一个 error django core except
  • 如何在Python中删除两个numpy数组的重复元素

    我有两个数组命名 u v 例如 u np array 1 0 2 0 2 0 3 0 4 0 v np array 10 0 21 0 18 0 30 0 40 0 a np array 100 0 210 0 220 0 300 0 40
  • 单元测试 mocha Visual Studio Code 描述未定义

    如果我在控制台中运行 测试运行良好 mocha require ts node register tests spec ts 注意 我安装了 mocha 和 mocha g 我想从 Visual Studio Code 运行单元测试 启动
  • 如何拆分 CSV 行,使 row[0] 为名称,其余项目为元组?

    我有一个 csv 文件 其中第一列是棒球运动员的姓名 文件中的每个后续项目都是统计数据 我希望能够导入该文件 以便玩家名称等于统计数据的元组 现在 当我使用以下代码导入文件时 Orioles file Orioles csv rU for
  • Android,使可滚动视图溢出到左侧而不是右侧?

    建议我使用父视图在 TextView 中进行水平滚动
  • 如何使用 ngFor 和 bootstrap 4 创建新的一行卡片

    我正在尝试将 Bootstrap 4 的卡组功能与 Angular 一起使用ngFor 这是我现在的 HTML 但我找不到如何在插入 3 个项目后换行 div class row card group div class col 4 car
  • 附加进程时提升删除 Managed_shared_memory

    我有 2 个进程 进程 1 创建一个 boost Managed shared memory 段 进程 2 打开该段 然后进程 1 重新启动 进程 1 的启动如下 struct vshm remove vshm remove boost i
  • Zend Framework 2 - 分页

    如何获取控制器操作中的页面详细信息 我使用了专辑的分页 iteratorAdapter new Zend Paginator Adapter Iterator this gt getAlbumTable gt fetchAll pagina
  • 如何清理(防止SQL注入)SQL Server中的动态SQL?

    我们有大量依赖动态 SQL 的 SQL Server 存储过程 存储过程的参数在动态 SQL 语句中使用 我们需要在这些存储过程中使用标准验证函数来验证这些参数并防止 SQL 注入 假设我们有这些约束 我们无法重写过程以不使用动态 SQL
  • 不同语言如何在其标准库中实现排序? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用similar_text()改进PHP字符串匹配?

    我正在使用 PHP 的imilar text 调用来比较两个字符串 但是 我没有得到足够好的结果 例如 对于我希望看到 100 的匹配 我得到的最好结果是 80 95 我还可以使用哪些其他函数来深入了解字符串的核心
  • GCC对读/写指令的重新排序

    Linux 的同步原语 自旋锁 互斥锁 RCU 使用内存屏障指令来强制内存访问指令重新排序 这种重新排序可以由 CPU 本身完成 也可以由编译器完成 有人可以展示一些 GCC 生成的代码示例 其中完成了此类重新排序吗 我主要对 x86 感兴
  • 如何为 Seaborn 混淆矩阵添加正确的标签

    我已经使用将数据绘制成混淆矩阵seaborn但我遇到了一个问题 问题是它只在两个轴上显示从 0 到 11 的数字 因为我有 12 个不同的标签 我的代码如下所示 cf matrix confusion matrix y test y pre
  • 如何在 MS Windows 上加载 GTK Sharp 主题

    我正在 MS Windows 上使用 Xamarin Studio 5 4 编写 GTK Sharp v2 12 应用程序 安装的Mono版本是3 2 3 但我使用 Net工具链进行编译 因为Xamarin不允许我使用Mono工具链进行编译