我在Linux下有一个GTK#3应用程序,我想强制从应用程序而不是系统中选择一个主题。
有没有办法实现这个目标?
答案 0 :(得分:0)
GTK#3 可以在运行时加载 CSS 主题,您可以递归地将其应用于窗口小部件的所有子项。
var cssProvider = new CssProvider();
cssProvider.LoadFromData(yourCssThemeAsString);
ApplyCssRecursively(window, cssProvider, UInt32.MaxValue);
static void ApplyCssRecursively(Widget widget, IStyleProvider provider, uint priority)
{
widget.StyleContext.AddProvider(provider, priority);
var container = widget as Container;
if (container == null) return;
foreach (var child in container.Children)
ApplyCssRecursively(child, provider, priority);
}