2010-12-06 61 views
2

我正在爲一個個人項目編寫一個非常簡單的文本編輯器組件。它支持粗體,斜體,下劃線,正方形,中心,左邊和填充的理由......迄今爲止這麼神。使用TextControl.Buffer.ApplyTag(tag, start, end),您按一下按鈕,所選文本部分將變爲粗體或任何其他內容。如果再次按下按鈕,粗體格式應該消失。如何檢測應用於Gtk#TextView中文本的標籤?

問題是檢測標籤然後將其刪除,因此格式消失。我知道我可以使用TextControl.Buffer.RemoveAllTags(start, end);以刪除所有標記,並且this.TextControl.Buffer.RemoveTag(tag, start, end);可以刪除特定標記。但是,我要尋找一個功能,如:

TextTag[] GetTags(TextIter start, TextIter end); 

...所以我能夠檢測出標籤被應用到具體的選擇,但我沒有找到Gtk.TextView也不在任何地方的文件中該功能其他。有人知道嗎?

回答

1

您想要TextIter.Tags只讀屬性。它給你一個適用於單點而不是範圍的標籤列表。範圍更復雜,因爲標籤可能僅適用於一半的範圍。如果你想要的話,你可能必須自己寫。

+0

謝謝,這就是我一直在尋找的。 – Baltasarq 2010-12-07 11:26:48