2

WPF elementHost の背景色に問題があります。パネルに UserControl(Winform) をロードする winform があります。そのユーザー コントロールには 2 つのパネルがあり、それぞれの内部に、WPF ユーザー コントロールをホストする elementHost があります。

画像はより役立つ場合があります。 ここに画像の説明を入力

ご覧のとおり、それぞれの背景色は BLACK ですが、要素は次のように表示されます。

ここに画像の説明を入力

これは、パネルに他の UserControls をロードしたときに発生したことに気付きました。これを修正する方法を知る必要があります。

各 elementHost の背景色は透明に設定され、BackColorTransparent は True に設定されています。また、実行時に背景色を変更しようとしましたが、それでも同じ問題です。

更新: わかりました、フォームのイベント Load でパネルに 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);
    }

明らかに、1 つの UserControl を使用している場合は、Load イベントを使用することが解決策になりますが、そうではありません。

4

2 に答える 2

1

わかりました、これが私がそれを解決する方法です:

このコードをすべての UserControl の Load() イベントに入れました。

elementHost.BackColorTransparent = true;

その問題を抱えているすべての elementHost 要素が elementHost であること。

奇妙なことに、そのプロパティはビジュアル デザイナーを使用して設計時に true に設定されていました。実行中に何かが台無しになる可能性があると思います。

于 2013-03-29T02:46:53.057 に答える