2009-05-21 9 views
2

Excel 2003 ActionsPaneでWPFチャートをホストしています。このチャートは水平方向と垂直方向の両方に伸びるように設定されていますが、ElementHostとチャートが水平にActionsPaneを塗りつぶしても、ElementHostを垂直方向に塗りつぶす方法はありません。 ElementHostのレイアウトに影響を与える唯一のプロパティは、高さとサイズのプロパティです。 Anchor、Dock、AutoSizeは、ActionsPaneオブジェクトまたはElementHostオブジェクトのレイアウトに影響しないようです。Excel 2003 ActionsPaneのAutoSize ElementHost

何か不足していますか?

に関して、

ダニー

// 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); 

    } 

答えて

3

は、カスタムWPFフォームを作成し、私のActionPaneと呼ばれ、ElementHostでそれを開催しました。ここで私はElementHost自体をやった方法です:

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

基本的に私はそれのオフに基づいてElementHostオブジェクトActionsPane Resizeイベントやサイズに加入します。これは

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

が私のために働いたOfficeアプリケーションのウィンドウと一緒にリサイズ(VERTおよびHORIZストレッチの両方で)WPFのcontorlの追加副次的な利点が得られますが、私は疑問に思うものを、他の追加インはあまりにもActionsPaneに自分のコントロールを追加した場合? – surfen

+0

@surfen 100%確かではない、私はそれをチェックアウトする必要があるだろう –

関連する問題