我对WPF elementHost的背景色有疑问。我有一个winform,可在面板中加载UserControl(Winform)。在该用户控件中,我有两个面板,每个面板内部都有一个承载WPF用户控件的elementHost。
图片可能会更有用:
如您所见,每个元素的背景色都是黑色,而元素应显示为:
我注意到这是在面板中加载其他UserControl时发生的。我需要知道如何解决这个问题。
每个elementHost的Backcolor设置为True,并且BackColorTransparent设置为True。
另外,我尝试在运行时更改背景色,但仍然是同样的问题。
更新:
好的,我注意到,如果在加载窗体事件中将UserControl加载到面板中,则elementHost会正确加载。但是,如果在按钮单击事件中将UserControl加载到面板中,则会得到黑色背景色。
作品:
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);
}
显然,仅当我使用一个UserControl而不是我时,使用Load事件才是解决方案。
最佳答案
好的,这就是我的解决方法:
我将这段代码放在每个UserControl的Load()事件中:
elementHost.BackColorTransparent = true;
作为elementHost遇到问题的每个elementHost元素。
它很好奇,但是在设计时使用视觉设计器将该属性设置为true,我认为在执行过程中可能会使其混乱。
关于c# - 设置为透明时控件中的黑色背景色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14987615/