1

WindowsFormsHostを使用してWPFアプリケーションにWindowsフォームコントロールを追加していますが、WinFormsコントロールは、ここのようにスタイルを設定しないと透明な背景を持つことができないことに気付きました。方法:コントロールに透明な背景を与える。これはWPFでどのように行われますか?

ところで、私はC#と.net4.0を使用しています。

ありがとう。

4

1 に答える 1

2

私はあなたがこれを行うことができるとは思わない. あなたが提供したリンクは、BackColor を透明に設定できるということです。これが発生すると、WinForms コントロール (ペイント バックグラウンド処理で) は親コントロールを取得し、その PaintBackground および Paint メソッドを呼び出します。コントロールには親 (WindowsFormsHost が作成するコントロール) がありますが、そのコントロールには親がないため、背景を描画するものは何もありません。Win32 の世界では WS_EX_TRANSPARENT ビットを設定するかもしれませんが、それはあらゆる種類の問題を引き起こし、WPF の動作方法に基づいて動作しない可能性さえあると思います。WPF と他のテクノロジ間の相互運用に関するさまざまなエア スペースの問題について説明している MSDN のトピック (たとえば、Technology Regions OverviewおよびWindowsFormsHost interop ) を確認します。

于 2011-11-28T12:36:37.023 に答える