如何在Gtk#TextView中检测应用于文本的标签?

时间:2010-12-06 15:23:52

标签: c# mono textview gtk#

我正在为个人项目编写一个非常简单的文本编辑器组件。它支持粗体,斜体,下划线,右边,中心,左边和填充对齐...到目前为止,上帝。使用TextControl.Buffer.ApplyTag( tag, start, end ),按一下按钮,所选文本部分变为粗体或其他。如果再次按下该按钮,粗体格式应该会消失。

问题是检测标签然后将其删除,因此格式消失。我知道我可以使用TextControl.Buffer.RemoveAllTags( start, end );删除所有代码,this.TextControl.Buffer.RemoveTag( tag, start, end );可以删除特定代码。但我正在寻找一个功能,如:

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

...所以我可以检测哪些标签已应用于特定选择,但我没有在Gtk.TextView的文档中找到该功能,也没有在其他任何地方找到该功能。有人知道吗?

1 个答案:

答案 0 :(得分:1)

您需要TextIter.Tags只读属性。它为您提供了应用于单个点而不是范围的标签列表。范围更复杂,因为标记可能仅适用于范围的一半。如果你需要,你可能必须自己写一下。