2009-05-21 9 views
2

Ich hostet ein WPF-Diagramm in einem Excel 2003 ActionsPane. Das Diagramm wird zwar horizontal und vertikal gestreckt, obwohl das ElementHost und das Diagramm die ActionsPane horizontal füllen, habe ich keine Möglichkeit gefunden, den ElementHost vertikal aufzufüllen. Die einzige Eigenschaft, die Auswirkungen auf das Layout von ElementHost hat, sind die Eigenschaften Height und Size. Anchor, Dock, AutoSize scheinen das Layout weder im ActionsPane-Objekt noch im ElementHost-Objekt zu beeinflussen.AutoSize ElementHost in Excel 2003 ActionsPane

Fehle ich etwas?

Grüßen,

Danny

// A snippet from ThisWorkbook.cs 
public partial class ThisWorkbook 
{ 
    private void ThisWorkbook_Startup(object sender, System.EventArgs e) 
    { 

     var ap = Globals.ThisWorkbook.ActionsPane; 
     ap.Clear(); 
     ap.Visible = true; 
     var plotControl1 = new Swordfish.WPF.Charts.TestPage(); 
     var elementHost1 = new System.Windows.Forms.Integration.ElementHost(); 
     elementHost1.AutoSize = true; // Doesn't seem to have an effect. 
     elementHost1.Child = plotControl1; 

     ap.Controls.Add(elementHost1); 

    } 

Antwort

3

eine benutzerdefinierte WPF Form meine ActionPane erstellen genannt und beherbergte es in einem Element. Hier ist, wie ich das tat Element selbst:

private void ThisDocument_Startup(object sender, System.EventArgs e) 
    { 
     ActionPane actionPaneControl = new ActionPane(); 
     this.ActionsPane.Resize += new EventHandler(ActionsPane_Resize); 
     this.ActionsPane.Controls.Add(new ElementHost { Child = actionPaneControl, AutoSize = true }); 
    } 

Grundsätzlich abonniere ich die Action Resize-Ereignis und Größe das Element Objekt basiert weg davon. Dies gibt den zusätzlichen Nebeneffekt des WPF contorl (sowohl mit vert und horiz Strecke) mit der Office-Anwendung Fenstergröße entlang

void ActionsPane_Resize(object sender, EventArgs e) 
    { 
     ((this.ActionsPane.Controls[0] as ElementHost).Child as ActionPane).Height = this.ActionsPane.Height; 
    } 
+0

für mich gearbeitet, aber ich frage mich, was passiert, wenn andere Add-In ihre Kontrollen an die Action auch hinzufügen ? – surfen

+0

@surfen Nicht 100% sicher, ich würde es überprüfen müssen –