我对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/

10-10 08:15