2012-08-07 14 views
2

我有奇怪的問題與ElementHost的上CustomTaskPane在Excel 2010中的32位的Windows 7 64位系統,內部主機.NET 4.0ElementHost的不刷新的工作簿後,在Excel中移到它2010

控制(或主機本身)後不重新繪製工作簿窗口移動了。 爲了說明這一點,我已經創建的樣本:

_host = new ElementHost { Dock = DockStyle.Fill, BackColorTransparent = false, BackColor = Color.Blue }; 
    _userControl = new UserControl(); 
    _userControl.Controls.Add(_host); 
    _taskPane = CustomTaskPanes.Add(_userControl, "Pane"); 
    _taskPane.Visible = true; 

我省略爲簡單起見孩子的控制,結果是一樣的。

這裏是如何看起來如預期: enter image description here

現在我把工作簿了一下週圍,我也得到:預計不會 enter image description here

顯然,灰色和黑色區域(與實際控制相同的結果主辦)。 _host刷新修復了問題 - 重新繪製自己和孩子,但問題是我沒有發現VSTO中的任何事件來檢測工作簿何時被移動。

問題:

  1. 在哪裏那些黑色/灰色地帶從何而來?
  2. 是否有可能避免/修復它,以及如何?
  3. (作爲解決方法)是否可以檢測工作簿窗口移動,以便我可以刷新_host併爲其發生的唯一情況禱告? (壞主意)

其他測試表明,Windows窗體控件不會遭受這種行爲。

在此先感謝。

回答

0

您應該將一個真正的XAML用戶控件放入ElementHost。

在您的WPF用戶控件中,使背景顏色=藍色的網格。

不要依賴要素主機本身

還要檢查更新,ElementHost的VSTO中得到很多的bug。

+0

爲簡單起見,我省略了子控件,因爲結果相同 – Arnas 2012-10-17 16:24:58

相關問題