VSTO Word 2016:Squiggly下划线而不影响撤消

时间:2016-11-27 13:14:17

标签: c# .net ms-word vsto

我正在开发一个实时语言分析工具,需要使用VSTO加载项(使用C#编写的.NET4.6.1编写,突出显示单词以引起Word 2016中作者的注意)。想一想语法/拼写检查,它会在单词下面添加一条波浪线,以显示该单词具有语法错误或拼写错误。我为我自己定义的一些规则添加了一个类似的功能。

我四处寻找添加波浪线的信息,偶然发现了Font.UnderlineFont.UnderlineColor。我把它设置在一个单词的范围内,它似乎提供了我追随的视觉效果。但是有一个问题。我添加或加下划线颜色的每个下划线都会向撤消堆栈添加撤消操作。

我不希望这种情况发生,或者我想要一种方法来弹出我刚才在堆栈代码中执行的操作。目的是让用户能够使用CTRL + Z删除他更改的文本,而不会影响我的语言分析结果。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:2)

不幸的是,看起来这个问题并不容易解决。从我所看到的,你有两个选择:

  1. 您可以使用Document.UndoClear清除整个撤消堆栈。但是,这将不是非常用户友好,因为之前的所有操作都不在撤消列表中。
  2. 使用UndoRecord课程。在您对StartCustomRecordEndCustomRecord的调用之间,代码中的所有操作都只会在撤消堆栈中生成一个项目。 CTRL + Z仍会影响您的语言分析,但整个撤销堆栈不会像以前那样受到污染。
  3. 我知道这不是你想要的,but even Microsoft MVPs don't have a better solution