Microsoft.Office.Interop.Visio + AutoConnect + Arrow - PullRequest
0 голосов
/ 10 сентября 2018

Я хотел бы знать, есть ли способ использовать AutoConnect от Microsoft.Office.Interop.Visio для соединения двух Shape и сделать так, чтобы соединение между обоими имело стрелку от первого до второго Shape.

Если невозможно установить это соединение с помощью AutoConnect, знаете ли вы другой способ сделать соединение стрелкой с двумя Shape?

Метод, который я пытаюсь использовать, выглядит следующим образом:

private void Connect Drawings (IVisio.Shape shape1, IVisio.Shape shape2, IVisio.VisAutoConnectDir dir)
{
     shape1.AutoConnect (shape2, dir);
}

Visio Print

1 Ответ

0 голосов
/ 11 сентября 2018

Спасибо за разъяснения в комментариях. Причина, по которой стрелка не отображается, возможно, заключается в том, что на странице установлена ​​тема «Нет темы», а по умолчанию для соединителей по этой схеме не отображаются стрелки. Таким образом, вы можете начать с шаблона или рисунка с желаемым набором тем или установить его в коде как часть вашего перетаскивания.

Вот пример ( с использованием LINQPad ):

void Main()
{
    var vApp = MyExtensions.GetRunningVisio();
    var vPag = vApp.ActivePage;
    var shp1 = vPag.DrawRectangle(2,5,3,4.5);
    var shp2 = vPag.DrawRectangle(4,7,5,6.5);
    shp1.AutoConnect(shp2, Visio.VisAutoConnectDir.visAutoConnectDirRight);
    //Assuming 'No theme' is set for the page, no arrow will 
    //be shown so change theme to see connector arrow
    vPag.SetTheme("Office Theme");
}

Если вам интересны некоторые темы, связанные с темой, у меня есть несколько сообщений на эту тему, начиная с этой: http://visualsignals.typepad.co.uk/vislog/2013/04/using-themes-in-visio-2013.html

...