Рисование в VSTO WordDocument без сохранения фигур в документе

Мы пытаемся создать надстройку документа VSTO Word 2013, которая накладывает визуальные индикаторы на документ, пока пользователь редактирует его, чтобы сообщить ему о проблемах с информацией, которую он печатает. Кажется, это можно сделать, нарисовав фигуры, подобные приведенному ниже образцу. В нашем случае мы не хотим, чтобы эти фигуры сохранялись вместе с документом, мы просто хотим, чтобы они были доступны при редактировании документа с установленной надстройкой. Может ли кто-нибудь объяснить, как мы можем это сделать?

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;
}

person JoeGeeky    schedule 27.06.2014    source источник


Ответы (1)


Я на 95% уверен, что в объектной модели Word нет ничего, что позволило бы вам делать то, что вам нужно. Фигуры, как вы заметили, считаются частью документа. Нет встроенного механизма для отображения произвольных фигур каким-либо другим способом. Вы можете сделать это вручную, управляя своими собственными окнами — получите Hwnd окна, содержащего ваш документ, затем используйте Win32 (и/или WinForms/WPF) для создания пользовательского интерфейса, который вы хотите отобразить.

person Michael Gunter    schedule 27.06.2014