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

标签 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 或其他任何地方的文档中找到该功能。有人知道吗?

最佳答案

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

关于c# - 如何检测应用于 Gtk# TextView 中文本的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4367899/

相关文章:

.net - 将程序集加载到另一个 AppDomain 和类型检查

mono - 如何在 WebFlux 的 ServerResponse 中返回 Flux<String>

Android:如何像ListView一样用一个TextView快速滚动ScrollView?

Android:如何以编程方式检查 TextView 是粗体还是斜体

c# - Linq to MongoDB 过滤器

c# - 如何从 ListView 中隐藏复选框

c# - 弹丸未正确继承父级速度 (Unity3D)

c# - 如何在 C# 中使用 Crypt32.dll 以兼容单声道

java - 以编程方式添加 TextView

javascript - 如何在 ASP.NET 中创建登录页面的重定向?