0
Q
在运行时更改主题
A
回答
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);
}
相关问题
- 1. Android Auto - 在运行时更改主题
- 2. 在运行时更改主题头
- 3. 更改Android主题运行时
- 4. 更改引导主题运行时
- 5. 运行时更改Android材质主题
- 6. 如何在运行时将黑色主题更改为白色主题?
- 7. 在ASP.NET Web窗体中运行时更改Bootstrap.css主题
- 8. Android在运行时更改列表视图主题
- 9. 在应用程序运行时更改主题
- 10. 有没有办法在运行时更改android主题?
- 11. 动态更改QML主题在运行时
- 12. 在运行时更改Android主题属性
- 13. 在运行时更改Polymer应用程序的主题
- 14. 如何在运行时更改颜色主题
- 15. 在MouseClick上运行时动态更改QML主题
- 16. 在运行时更改Flex 4主题(CSS + Skin)?
- 17. 在运行时更改CSS文件(主题)(ASP.NET)
- 18. 在运行时更改MenuItem标题
- 19. DataGrid - 在运行时更改列标题
- 20. 更改展望主题行
- 21. 在运行时更改dbContext
- 22. 在运行时更改string.xml
- 23. 更改在运行时
- 24. 在运行时更改LSApplicationQueriesSchemes
- 25. 在运行时更改fieldCls
- 26. 在运行时更改appconfig
- 27. 在运行时更改Winsock.LocalIP
- 28. 在运行时更改ListItem
- 29. 在运行时更改.dll
- 30. 运行时更改DataGridView标题文本
更好地使用'StyleContext.AddProviderForScreen'而不是'AddProvider'来递归地知道谁知道有多少个小部件。 – ptomato