2013-03-20 14 views
5

Recentemente ho scritto un add-in di Outlook che ha un file ribbon.xml per un nastro extra, menu di scelta rapida, ecc. Ho anche aggiunto un pannello aggiuntivo ancorato sulla destra della mia finestra.Come si può aggiungere un pannello personalizzato in un componente aggiuntivo di Visio 2013?

Ora ho iniziato alcune ricerche su come creare componenti aggiuntivi per Visio. Il ribbon.xml è praticamente lo stesso, quindi non è affatto un problema. Tuttavia, non riesco a trovare alcun modo per aggiungere un pannello personalizzato quando viene aperto un documento Visio.

Finora ho questo in Visio per sapere se un documento viene aperto/creato/cambiato:

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"); 
} 

In prospettiva vorrei farlo per aggiungere un pannello personalizzato (semplificato):

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; 

Ora come potrei farlo in un componente aggiuntivo Visio 2013?

Edit:

Purtroppo questo mi fa pensare che non è possibile: http://msdn.microsoft.com/en-us/library/vstudio/bf08984t.aspx

Edit2:

La risposta seguente dovrebbe funzionare: Are Task Panes Available in Visio VSTO?

Tuttavia posso' Mi sembra di trovare un modo per ottenere un pannello ancorato sulla mia finestra principale. Ecco quello che ho provato:

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

Questo aggiunge la finestra come se si trattasse di un nuovo disegno ...

Edit3:

Visio genera un'eccezione COM su questo dicendo che ho un tipo di finestra non valido.

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

risposta

2

È possibile utilizzare Ancora Bar in Visio, non riquadri attività Se si scarica il Visio SDK e guardare nei codici dei campioni di biblioteca, troverete Anchor Bar Usage sotto interfaccia utente.

Per completezza, si potrebbe desiderare di rivedere questo articolo di MSDN Windows.Add Method (Visio) - http://msdn.microsoft.com/en-us/library/office/ff767674.aspx

+0

Se provo il codice dal mio ultimo esempio di codice con 'visAnchorBarAddon' Visio mi genera un'eccezione COM dicendo la finestra il tipo non è valido Lo fa per qualsiasi cosa eccetto 'visStencilAddon'. Modificherò il mio post per mostrare quello che ho provato –

+0

Ho già avuto l'SDK Visio ma ho apparentemente trascurato quell'esempio di codice, grazie per il vostro aiuto –

Problemi correlati