2013-02-20 213 views
2

我遇到WPF elementHost背景顏色問題。我有一個WinForm,加載在面板UserControl(Winform)。在該用戶控件中,我有兩個面板,每個面板中都有一個承載WPF用戶控件的elementHost。設置爲透明時的黑色背景顏色

圖片可以提供更多的幫助: enter image description here

正如你可以看到,他們每個人的背景色是黑色,而該元素應顯示是這樣的:

enter image description here

我注意到當我在面板中加載其他用戶控件時發生這種情況。我需要知道如何解決這個問題。

每個elementHost都將其背景色設置爲透明並且將BackColorTransparent設置爲True。 另外,我試圖在運行時更改背景顏色,但仍然是同樣的問題。

更新: 好吧,我注意到,如果我加載窗體的事件負載的面板中的用戶控件,elementHost加載正確。但是,如果我在按鈕點擊事件的面板中加載UserControl,我會得到那個黑色背景色。

WORKS:

private void frm_Configuracion_Load(object sender, EventArgs e) 
    { 
     /*ABM.frm_ABM_Banco_Sucursal banco_sucursal = new ABM.frm_ABM_Banco_Sucursal(); 
     panel1.Controls.Add(banco_sucursal);*/ 
    } 

不工作:

private void button3_Click(object sender, EventArgs e) 
    { 
     ABM.frm_ABM_Banco_Sucursal banco_sucursal = new ABM.frm_ABM_Banco_Sucursal(); 
     panel1.Controls.Add(banco_sucursal); 
    } 

顯然,使用Load事件將是解決辦法,如果只是使用I'm一個用戶控件,但我可不是。

+0

[顯然](http://social.msdn.microsoft.com/forums/en-US/wpf/thread/1ab1d4de-19b5-4342-9c8f-1f82a13f0ca5/)這是不可能的。順便說一句,esa grilla es de winforms? – 2013-02-20 18:58:37

+0

是的,我讀了那個URL,但它是可能的。 WPF用戶控件在我的所有表單中都是透明的。當我在面板中加載Winform UserControl並且該UserControl具有這些ElementsHost時,該錯誤就顯示出來了。是的,我在Winforms – Andres 2013-02-20 19:02:54

+0

Congrats =)中做了這個網格。我不認爲winforms能夠做出這樣好看的事情。 – 2013-02-20 19:10:49

回答

1

好吧,這是我如何解決這個問題:

我把這個代碼在加載每個用戶控件的()事件:

elementHost.BackColorTransparent = true; 

被ElementHost的每一個ElementHost的是有麻煩的元素。

它很好奇,但是這個屬性在設計時使用了視覺設計器設置,我認爲在執行過程中可能會搞砸了。

0

我遇到了同樣的問題,即當我單擊按鈕更新我的用戶界面時,我的用戶控件變黑。

我的用戶控件在一個TableLayoutPanel發現其中不包含房產BackColorTransparent

爲了解決我的問題,我有刷新控制。的代碼段如下所示:

foreach (Control subControls in this.MainTableLayoutPanel.Controls) 
{ 
    foreach (Control control in subControls.Controls) 
    { 
     control.Refresh(); 
    } 
}