C# 如何在GTK中向应用程序添加图标#

C# 如何在GTK中向应用程序添加图标#,c#,windows,gtk,gtk3,gtk#,C#,Windows,Gtk,Gtk3,Gtk#,我有一个非常基本的GTK窗口,但标题栏上似乎缺少图标。我相信应该有关闭、最大化和最小化窗口的图标 我的问题是:如何在GTK 3.22.7中添加图标?GTK如何确定在哪里搜索图标 我想GTK和GTK的答案是相似的。如果你不知道C#是怎么做的,你能为纯GTK写下答案吗?我也许能想出如何将它移植到C#。自我回答: 您需要有如下结构的图标目录: icons/ ├── Adwaita │   ├── 16x16 │   ├── 22x22 │   ├── 24x24 │   ├── 256x256 │ 

我有一个非常基本的GTK窗口,但标题栏上似乎缺少图标。我相信应该有关闭、最大化和最小化窗口的图标

我的问题是:如何在GTK 3.22.7中添加图标?GTK如何确定在哪里搜索图标

我想GTK和GTK的答案是相似的。如果你不知道C#是怎么做的,你能为纯GTK写下答案吗?我也许能想出如何将它移植到C#。

自我回答:

您需要有如下结构的图标目录:

icons/
├── Adwaita
│   ├── 16x16
│   ├── 22x22
│   ├── 24x24
│   ├── 256x256
│   ├── 32x32
│   ├── 48x48
│   ├── 512x512
│   ├── 64x64
│   ├── 8x8
│   ├── 96x96
│   ├── cursors
│   ├── icon-theme.cache
│   ├── index.theme
│   ├── scalable
│   └── scalable-up-to-32
└── hicolor
    ├── 128x128
    ├── 16x16
    ├── 192x192
    ├── 22x22
    ├── 24x24
    ├── 256x256
    ├── 32x32
    ├── 36x36
    ├── 48x48
    ├── 512x512
    ├── 64x64
    ├── 72x72
    ├── 96x96
    ├── icon-theme.cache
    ├── index.theme
    ├── scalable
    └── symbolic
然后,您必须指定图标的路径/

Gtk.IconTheme.Default.AppendSearchPath(@"D:\dev\git\GtkApp1\bin\Debug\icons");
您还可以选择要使用的图标主题

Gtk.Settings.Default.IconThemeName = "Adwaita";

如果图标位于正确的
share/
子目录中,则应在不附加路径的情况下拾取图标。不幸的是,它们不是从相对于application.exe的
share/icons/
中拾取的。
share
目录必须与
bin
目录位于同一目录中,现在,当我把它放在
bin
旁边时,它就可以工作了。是否在某处记录了GTK查找顺序?在Windows上,目录查找使用以下命令: