【问题标题】:Gtk theme in GTK# (Windows)GTK# (Windows) 中的 Gtk 主题
【发布时间】:2014-12-17 08:11:37
【问题描述】:

我正在尝试更改 GTK# 中的主题(操作系统:Windows,IDE:Xamarin)。但我得到了下一个问题:

  1. 我只能找到一个正确渲染的主题,它是“Orta”。一切都很好,除了滞后和冻结。这是我的代码:

    string Resource_File = "Orta\\gtk-2.0\\gtkrc"; Application.Init (); Gtk.Rc.AddDefaultFile (Resource_File); Gtk.Rc.Parse (Resource_File); MainWindow win = new MainWindow (); win.Show (); Application.Run ();

    当我更改 Paned 的大小或单击按钮时,我得到 GUI 冻结(I already asked about this)。仅在使用此主题时才会出现此问题,其他主题都可以正常工作。我通过搜索发现了一些意见,关于这是由于使用 Cairo 渲染图形(one of them)。

  2. 如果我尝试使用不同的主题,很多 GUI 元素未正确呈现在我的 GTK# 应用程序中,但它们在 GTK 主题选择器中正确呈现。如果主题在 GTK 主题选择器中正确显示,那么我尝试在我的 Gtk# 应用程序中使用选定的 gtkrc 文件(如示例中的“Orta”所示),但几乎总是,大多数小部件都无法正确显示(here is an example )

所以我有几个问题:

  1. 如何选择作品主题?
  2. 如何为 GTK# (Windows) 设置主题?
  3. 什么Gtk#开源应用程序使用了主题以及如何使用?
  4. 还有什么其他方法可以改变 GTK# 应用程序中的 GUI 样式?
  5. 为什么“Orta”主题冻结?

所以我需要你的帮助! 谢谢!

【问题讨论】:

    标签: mono gtk gnome cairo gtk#


    【解决方案1】:

    我知道这是一个老问题,但我最近一直在与主题作斗争。

    事实证明,当使用 Xamarin 运行 Gtk# 应用程序构建时,会出现主题问题,因为似乎某些“类似 Windows”的主题被强制写入代码。

    从 Xamarin Studio 运行应用程序时,根据 .Net 框架(Microsoft .NET 4.5、Mono 3.3.0、Mono 4.0.1),行为会有所不同。我收到了 Mono 3.3.0 的警告,告诉我找不到“Xamarin”引擎。

    我最终得到了以下代码:

    Application.Init ();
    Gtk.Settings.Default.ThemeName = "Theme/gtk-2.0/gtkrc";
    Gtk.Rc.Parse ("./Theme/gtk-2.0/gtkrc");
    

    gtkrc 是我的主题。如果不设置默认主题名称,则无法正常工作。我没有深入定制我的主题,所以我不知道它是否解决了所有主题问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多