GTK中的彩色文本背景#

时间:2015-10-16 02:03:52

标签: mono gtk gtk#

我正在使用GTK#和TextWidget来显示可编辑的文本。我希望每个文本项目的背景颜色由角色决定(这样所有" A"都是红色,所有" G"是绿色,所有" C&# 34;蓝色等)。

这似乎有可能,但有没有人知道一种有效的方式告诉GTK#以这种方式为输入文字着色?

1 个答案:

答案 0 :(得分:1)

您可以使用TextTag更改Gtk.TextView中文本的颜色。

下面的示例创建了一个错误标记,在插入文本时突出显示带有红色背景的文本。

var textView = new Gtk.TextView ();

var errorTag = new TextTag ("error");
errorTag.Background = "#dc3122";
errorTag.Foreground = "white";
errorTag.Weight = Pango.Weight.Bold;
textView.Buffer.TagTable.Add (errorTag);

string text = "foo";

// Insert text with tag.
TextIter start = textView.Buffer.EndIter;
textView.Buffer.InsertWithTags (ref start, text, errorTag);

text = "bar";

// Insert text then apply tag.
textView.Buffer.Insert (ref start, text);
start = textView.Buffer.GetIterAtOffset (5);
TextIter end = textView.Buffer.GetIterAtOffset (6);
textView.Buffer.ApplyTag (errorTag, start, end);

var vbox = new Gtk.VBox ();
Add (vbox);
vbox.PackStart (textView);

vbox.ShowAll ();