C# 在VSTO WordDocument上绘图而不在文档中保存形状
我们正在尝试创建一个VSTO Word 2013文档Addin,该文档在用户编辑时覆盖文档上的视觉指示器,以使他们意识到所键入信息的问题。这似乎可以通过绘制如下示例所示的形状来实现。在我们的例子中,我们不希望这些形状与文档一起保存,我们只希望它们在安装了加载项的文档编辑时可用。有人能解释一下我们是怎么做到的吗C# 在VSTO WordDocument上绘图而不在文档中保存形状,c#,vsto,office-interop,C#,Vsto,Office Interop,我们正在尝试创建一个VSTO Word 2013文档Addin,该文档在用户编辑时覆盖文档上的视觉指示器,以使他们意识到所键入信息的问题。这似乎可以通过绘制如下示例所示的形状来实现。在我们的例子中,我们不希望这些形状与文档一起保存,我们只希望它们在安装了加载项的文档编辑时可用。有人能解释一下我们是怎么做到的吗 private void DrawIt() { object oRng = Globals.ThisDocument.Application.Selection.Range;
private void DrawIt()
{
object oRng = Globals.ThisDocument.Application.Selection.Range;
var doc = Globals.ThisDocument.InnerObject;
var shape = doc.Shapes.AddLine(100f, 100f, 100f, 200f, ref oRng);
if (shape == null) return;
shape.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
shape.Line.DashStyle = Microsoft.Office.Core.MsoLineDashStyle.msoLineDash;
shape.Line.Weight = 3;
}
我有95%的把握,在Word对象模型中没有任何东西可以让你做你想做的事情。正如您所发现的,形状被视为文档的一部分。没有以任何其他方式显示任意形状的内置机制。您可以通过管理自己的窗口手动执行此操作—获取包含文档的窗口的Hwnd,然后使用Win32(和/或WinForms/WPF)创建要显示的UI