最近我寫了一個outlook加載項,其中有一個用於額外功能區的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");
}
在Outlook我這樣做是爲了添加自定義面板(簡體):
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加載項中執行此操作?
編輯:
很不幸,這讓我覺得這是不可能的: http://msdn.microsoft.com/en-us/library/vstudio/bf08984t.aspx
EDIT2:
以下的答案應該工作:Are Task Panes Available in Visio VSTO?
不過,我可以」似乎找到了一種方法在我的主窗口上獲得停靠面板。這裏是我的嘗試:
Globals.ThisAddIn.Application.Windows.Add("testpanel", VisWindowStates.visWSDockedLeft, VisWinTypes.visStencilAddon, null, null, null, 300);
,好像它是一個新的繪圖這增加了窗口......
EDIT3:
Visio中拋出這個COM異常說我有一個無效的窗口類型。
Application.Windows.Add("testpanel", VisWindowStates.visWSDockedRight, VisWinTypes.visAnchorBarAddon, null, null, 300);
如果我從我的'最後的代碼示例嘗試代碼visAnchorBarAddon'的Visio拋出我一個COM異常話說窗口類型無效。除了'visStencilAddon'之外,它可以做到這一點。我將編輯我的帖子以顯示我所嘗試的內容 – 2013-03-26 07:17:18
我已經擁有Visio SDK,但顯然忽略了代碼示例,感謝您的幫助 – 2013-03-26 07:39:17