我正在使用VS2017中的GTKSharp將C/GTK + GUI應用程序轉換爲C#。我已經通過NuGet安裝了這個軟件包https://www.nuget.org/packages/GtkSharp/3.1.3。GTKSharp中的CSS樣式
下面是如何加載了CSS(應用程序使用格萊德文件來定義的接口):
static void Main(string[] args)
{
new Program(args);
}
public Program(string[] args)
{
Application.Init();
builder = new Builder();
Gtk.CssProvider provider = new CssProvider();
builder.AddFromFile("interface.glade");
provider.LoadFromPath("style.css");
builder.Autoconnect(this);
Gtk.Window window = (Gtk.Window)builder.GetObject("start");
Gtk.StyleContext.AddProviderForScreen(Gdk.Screen.Default, provider, 800); // couldn't find the equivalent to GTK_STYLE_PROVIDER_PRIORITY_USER so I set the priority to a random number
window.Show();
Application.Run();
}
選擇器的名稱似乎是從GTK +不同。例如,
window {
...
}
作品在C/GTK +,但不是在C#中,而在C#
GtkWindow {
...
}
的作品,但不是在C/GTK +。然後有一些我根本看不到的款式。例如,
button {
...
}
作品在GTK +,但
GtkButton {
...
}
不會在C#中工作。我找不到有關GTK#如何處理CSS樣式的任何文檔,因此我認爲它與GTK +相同。任何指針?