2013-02-20 109 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(); 
    } 
}