如何在GTK#中禁用TextView的透明度?

时间:2018-03-23 12:25:54

标签: c# mono gtk gtk#

我正在创建一个GTK#应用程序,我对TextView有一些奇怪的行为(或者可能是ScrolledWindow,无法真正说出来):

problem

当背景应该是纯色时,它基本上复制它背后的任何东西并将其用作背景。当我切换标签时,它甚至会显示之前选择的标签中的内容。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

好吧,我不喜欢我必须这样做,但它确实有效:

    // Fix the weird display bug
    drawnHandler = new DrawnHandler((o, args) =>
    {
        this.Drawn -= drawnHandler;
        var color = ConsoleBox.StyleContext.GetBackgroundColor(StateFlags.Normal);
        ConsoleBox.OverrideBackgroundColor(StateFlags.Normal, new Gdk.RGBA()
        {
            Red = color.Red,
            Green = color.Green,
            Blue = color.Blue,
            Alpha = 1
        });
    });
    this.Drawn += drawnHandler;

这会得到正确的背景颜色并设置它没有alpha(我甚至不确定alpha是如何设置的,因为我从未在代码中的任何位置更改背景颜色)。