2つのオーバーラップ PictureBox
コントロール があるので、画像ボックスの透明な領域で、下の(zオーダーの)コントロールが表示されるようにしようとしています。
Microsoftの提案を試してみてください の後でも、希望する結果が得られません。
これは私が現在持っているものです:
そしてこれが私が欲しいものです:
だから私の質問は:
2つのPictureBox
コントロールを互いに重ねて(または別の方法で)透明な領域を輝かせて、目的の結果を達成する方法はありますか?
更新:
実際、私は この回答 をSO質問 " C#WinFormsの透明画像 "に)を使用して解決しました。
これを試して
private void Form1_Load(object sender, EventArgs e)
{
// Transparent background...
pictureBoxOverlay.BackColor = Color.Transparent;
// Change parent for overlay PictureBox...
pictureBoxOverlay.Parent = pictureBoxMain;
// Change overlay PictureBox position in new parent...
// pictureBoxOverlay.Location = new Point(0, 0);
}
結果
私の知る限り、コントロールの透明度はその親コントロールに依存します(与えたリンクに記載されているように)。つまり、探している効果を得るには、1つの画像ボックスをネストする必要があります。ピクチャーボックスがコンテナではないことを考えると不可能な別のピクチャーボックス。
ただし、親画像の画像ボックスの代わりにカスタムコンテナコントロールを使用できます。最も基本的なコントロールはパネルです。コントロールの背景画像を設定し、2番目の画像ボックスをその中に入れるだけです。
別の解決策は、1つの画像ボックスを使用してレンダリングを手動で管理することです。
他の方法の疑似シミュレーションされた透明度は静かに非効率的であるため、これは断然最良の解決策です。