Рисуване на 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