0
我正在使用GTK#和TextWidget來顯示可編輯文本。我希望每個文本項目的背景顏色由字符決定(所有「A」都是紅色的,所有的「G」都是綠色的,所有的「C」都是藍色的,等等)。GTK中的顏色文本背景#
看起來這可能是可能的,但有誰知道一種有效的方式來告訴GTK#這種方式來顏色輸入文本?
我正在使用GTK#和TextWidget來顯示可編輯文本。我希望每個文本項目的背景顏色由字符決定(所有「A」都是紅色的,所有的「G」都是綠色的,所有的「C」都是藍色的,等等)。GTK中的顏色文本背景#
看起來這可能是可能的,但有誰知道一種有效的方式來告訴GTK#這種方式來顏色輸入文本?
您可以使用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();
你知道我該怎麼做,以響應用戶添加文本? – evolvedmicrobe
是的。 InsertWithTags等同於Insert和ApplyTag。我已經爲源代碼添加了一個示例。 –