Я ищу способ вставить форму MS Word в позицию курсора.На данный момент у меня есть следующий код, который вставляет фигуру в заранее определенном месте:
Microsoft.Office.Interop.Word.Range CurrRange = Globals.ThisAddIn.Application.Selection.Range;
//Get the id of the MS Word shape to be inserted
int shapeId = (int)MsoAutoShapeType.msoShapeRoundedRectangle;
//Get the value of the name attribute from the selected tree view item
string nodeText = treeViewItem.GetAttribute("name");
//Add a new shape to the MS Word designer and set shape properties
var shape = CurrRange.Document.Shapes.AddShape(shapeId, 170, 200, 100, 20);
shape.AlternativeText = String.Format("Alt {0}", nodeText);
shape.TextFrame.ContainingRange.Text = nodeText;
shape.TextFrame.ContainingRange.Font.Size = 8;
Место, где фигура вставляется, жестко закодировано:
Это видно из 2-го и3-ий параметр метода AddShape()
:
170 = позиция, измеренная в точках к левому краю автофигуры
200 = позиция, измеренная в точках к верхнему краю автофигуры
Я посмотрел на свойства и методы моего объекта Range, но, похоже, не могу найти ничего, в котором хранятся значения позиций, которые мне требуются.