我必须创建一个用户可以为其编写插件的文本编辑器。我将使用可绑定的richtextbox,可以在其中绑定文档。
这些插件可以通过突出显示,更改单词等来更改编辑器的文本。
编辑器还需要一次处理多个插件,例如,粘贴文本,第一个插件使单词变为粗体,第二个插件使它们变为蓝色。
现在,我的想法是将“插入方法”(从插件接口派生)交给富文本框流程文档形式的字符串。 然后,用户可以在文本中搜索单词并执行其操作,就像在单词周围添加带有特定颜色的“跑步”一样。
// <Run FontWeight=\"Bold\" Foreground=\"#FF0000FF\"> WordToHighlight </Run>
该方法将返回字符串或流文档。
问题:如果有多个插件在工作并且想要编辑同一个单词,则已经有一个围绕特定单词的运行,但是编写该插件的用户当然对此一无所知。
我尝试进行研究,但还没有发现实质性内容。
我的一般想法是完全错误的还是有解决问题的方法?
任何帮助将不胜感激。
public interface IPluginInterface
{
// The input text would be the flowdocument of the richtextbox
// The returned string would be the edited flowdocument
string AlterText(string text);
}
public class HighlightPlugin : IPluginInterface
{
// The input text would be the flowdocument of the richtextbox
// The returned string would be the edited flowdocument
string AlterText(string text)
{
// Code that alters the text
}
}