【发布时间】:2018-03-23 12:25:53
【问题描述】:
我正在制作一个 GTK# 应用程序,但我对 TextView 有一些奇怪的行为(或者可能是 ScrolledWindow,无法确定):
它基本上是复制它背后的任何东西并将其用作背景,而背景应该是纯色。当我切换标签时,它甚至会显示之前选择的标签中的内容。
如何解决此问题?
【问题讨论】:
-
您可以只问您特别想看哪一部分,尤其是考虑到我不知道问题出在哪里。
我正在制作一个 GTK# 应用程序,但我对 TextView 有一些奇怪的行为(或者可能是 ScrolledWindow,无法确定):
它基本上是复制它背后的任何东西并将其用作背景,而背景应该是纯色。当我切换标签时,它甚至会显示之前选择的标签中的内容。
如何解决此问题?
【问题讨论】:
好吧,我不喜欢我必须这样做,但它确实有效:
// 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 的,因为我从未在代码中的任何地方更改背景颜色)。
【讨论】: