Windowsフォームのユーザーコントロール(ラジオボタンと3つのラベルと1つのプログレスバーで構成されています)で単純な棒人間を作成しました。
新しいユーザーコントロールの背景色を透明に設定して、フォームにドラッグしたときに、フォーム上の他の色や描画と混ざり合うようにしました。達成しようとしていることが得られません。
これが写真です:
Windowsフォームのユーザーコントロール(ラジオボタンと3つのラベルと1つのプログレスバーで構成されています)で単純な棒人間を作成しました。
新しいユーザーコントロールの背景色を透明に設定して、フォームにドラッグしたときに、フォーム上の他の色や描画と混ざり合うようにしました。達成しようとしていることが得られません。
これが写真です:
UserControl は既にこれをサポートしており、その ControlStyles.SupportsTransparentBackColor スタイル フラグは既にオンになっています。BackColor プロパティを Color.Transparent に設定するだけです。
次に、この透明度がシミュレートされることを覚えておく必要があります。これは、コントロールの親にそれ自体を描画して背景を生成するように要求することによって行われます。したがって、重要なのは、Parent セットを正しく取得することです。親がコンテナー コントロールでない場合、これを行うには少し注意が必要です。ピクチャーボックスのように。デザイナーはフォームを親にするので、画像ボックスではなく、フォームの背景が表示されます。コードでこれを修正し、フォーム コンストラクターを編集して、次のようにする必要があります。
var pos = this.PointToScreen(userControl11.Location);
userControl11.Parent = pictureBox1;
userControl11.Location = pictureBox1.PointToClient(pos);