2013-03-20 2 views
5

Недавно я написал надстройку надстройки, в которой есть файл ribbon.xml для дополнительной ленты, контекстного меню и т. Д. Я также добавил дополнительную панель, прикрепленную справа от моего окна.Как добавить пользовательскую панель в надстройку Visio 2013?

Теперь я начал некоторые исследования как о создании надстроек для Visio. Ribbon.xml практически то же самое, так что это не проблема вообще. Тем не менее, я не могу найти способ добавить пользовательскую панель при открытии документа Visio.

До сих пор у меня есть это в Visio, чтобы знать, если документ открыт/создан/изменен:

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    MessageBox.Show("Visio Add-In V1"); 
    Globals.ThisAddIn.Application.DocumentChanged += new Visio.EApplication_DocumentChangedEventHandler(docChanged); 
    Globals.ThisAddIn.Application.DocumentOpened += new Visio.EApplication_DocumentOpenedEventHandler(docChanged); 
    Globals.ThisAddIn.Application.DocumentCreated += new Visio.EApplication_DocumentCreatedEventHandler(docChanged); 
} 

private void docChanged(Visio.Document doc) 
{ 
    MessageBox.Show("Document loaded"); 
} 

В перспективе я хотел бы сделать это, чтобы добавить пользовательскую панель (упрощенный):

MyPanel ctrl = new MyPanel(); 
Microsoft.Office.Tools.CustomTaskPane ctp = Globals.ThisAddIn.CustomTaskPanes.Add(ctrl, title); 
ctp.Visible = true; 
ctp.Width = 300; 
ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight; 

Теперь, как я смогу сделать это в надстройке Visio 2013?

Edit:

К сожалению, это заставляет меня думать, что это невозможно: http://msdn.microsoft.com/en-us/library/vstudio/bf08984t.aspx

Edit2:

Следующий ответ должен работать: Are Task Panes Available in Visio VSTO?

Однако я могу» t, похоже, найти способ получить пристыкованную панель в моем главном окне. Вот то, что я пробовал:

Globals.ThisAddIn.Application.Windows.Add("testpanel", VisWindowStates.visWSDockedLeft, VisWinTypes.visStencilAddon, null, null, null, 300); 

Это добавляет в окно, как если бы это был новый рисунок ...

Edit3:

Визио бросает COM исключение на это высказывание у меня есть недопустимый тип окна.

Application.Windows.Add("testpanel", VisWindowStates.visWSDockedRight, VisWinTypes.visAnchorBarAddon, null, null, 300); 

ответ

2

Вы можете использовать анкерные стержни в Visio, не Task Panes Если вы загрузите Visio SDK и посмотреть в коды Образцы библиотеки, вы найдете Usage Anchor Bar под интерфейсом пользователя.

Для полноты, вы можете просмотреть эту статью MSDN Windows.Add Method (Visio) - http://msdn.microsoft.com/en-us/library/office/ff767674.aspx

+0

Если я пытаюсь код из моего последнего образца кода с 'visAnchorBarAddon' Визио бросает мне COM исключение, говоря окно тип недопустим. Он делает это для чего угодно, кроме 'visStencilAddon'. Я отредактирую свой пост, чтобы показать, что я пробовал –

+0

У меня уже был Visio SDK, но, по-видимому, он пропустил этот образец кода, спасибо за вашу помощь –

Смежные вопросы