GTK (GTK#) TreeView,让网格线更明显?

GTK (GTK#) TreeView, make gridlines more visible?

我启用了如下网格线。

        tree.EnableGridLines = TreeViewGridLines.Both;

但问题是线条几乎看不到,如下所示(如果您认为没有网格线,请放大图像,然后仔细看)。 Gtk.TreeViewGridLineWidth,但它是只读的。我怎样才能让它们更显眼?


我试图找到与答案的 C 代码等效的 C#,以下工作正常。使网格线变粗是可行的,但问题是在 Ubuntu 中,网格线的颜色太浅以至于即使它更粗也不是真正可见的。所以,我改了颜色。

var p = new CssProvider();
p.LoadFromData("*{border-color:darkgray;}");
tree.StyleContext.AddProvider(p,Gtk.StyleProviderPriority.Application);

您可以使用 CSS 提供程序并将网格线宽度设置为大于一个像素的值。同样,以下代码片段是用“C”编写的;但是,解释代码以使用等效的 C# 语句应该很容易。

首先,关闭一个将创建一个 GTK CSS 提供程序。

GtkCssProvider      *provider;
provider = gtk_css_provider_new();

然后,将为 CSS 提供程序小部件定义自定义 CSS 样式信息,并且 CSS 提供程序小部件将与您的树视图相关联。

gtk_css_provider_load_from_data(provider, "*{-GtkTreeView-grid-line-width: 4;}", -1, NULL);
gtk_style_context_add_provider(gtk_widget_get_style_context(view), GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);

请注意,GTK 为网格元素定义了一组特定的属性,而不是使用“border-width”等标准元素。本场景需要定制的属性为“-GtkTreeView-grid-line-width”.

将网格宽度设置为四个像素的夸张宽度后,以下示例说明了自定义 CSS 样式增强的效果。

希望这能为您指明正确的方向。

此致。