2013-03-20 12 views
5

Kürzlich habe ich ein Outlook-Add-In geschrieben, das eine band.xml-Datei für eine zusätzliche Multifunktionsleiste, ein Kontextmenü usw. enthält. Außerdem habe ich ein zusätzliches Fenster rechts neben meinem Fenster angedockt.Wie können Sie ein benutzerdefiniertes Panel in einem Visio 2013-Add-In hinzufügen?

Jetzt habe ich ein wenig Nachforschungen darüber angestellt, wie Sie Add-Ins für Visio erstellen können. Die ribbon.xml ist praktisch gleich, das ist also überhaupt kein Problem. Ich kann jedoch keine Möglichkeit finden, ein benutzerdefiniertes Fenster hinzuzufügen, wenn ein Visio-Dokument geöffnet wird.

Bisher habe ich dies in Visio muß wissen, ob ein Dokument geöffnet/erstellt/geändert:

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 Aussichten würde ich dies tun, um einen benutzerdefinierten Bedienfelder (vereinfachte) hinzuzufügen:

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; 

Wie könnte ich das jetzt in einem Visio 2013 Add-In tun?

Edit:

Leider das macht mich denken, es ist nicht möglich: http://msdn.microsoft.com/en-us/library/vstudio/bf08984t.aspx

Edit2:

Die folgende Antwort sollte funktionieren: Are Task Panes Available in Visio VSTO?

Allerdings kann ich‘ Es scheint so zu sein, einen Weg zu finden, um ein angedocktes Panel auf meinem Hauptfenster zu bekommen. Hier ist, was ich versucht:

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

Dieses aus dem Fenster fügt hinzu, als ob es sich um eine neue Zeichnung waren ...

Edit3:

Visio wirft eine COM-Ausnahme auf das sage ich ein ungültiger Fenstertyp

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

Antwort

2

Sie Anchor Bars in Visio verwenden, nicht Aufgabenbereiche Wenn Sie das Visio SDK herunterladen und schauen in den Codes Proben Bibliothek, werden Sie Anchor Bar Verwendung unter Benutzeroberfläche finden.

Für Vollständigkeit, dann können Sie diese MSDN-Artikel Windows.Add Methode (Visio) überprüfen - http://msdn.microsoft.com/en-us/library/office/ff767674.aspx

+0

Wenn ich den Code aus dem letzten Codebeispiel mit 'visAnchorBarAddon' Visio wirft mir einen COM-Ausnahme sagen, das Fenster versuchen Typ ist ungültig. Es tut dies für alles außer 'visStencilAddon'. Ich werde meinen Beitrag bearbeiten, um zu zeigen, was ich versucht habe –

+0

Ich hatte bereits das Visio SDK, aber offenbar übersehen, dass Codebeispiel, danke für Ihre Hilfe –