ホームページ >バックエンド開発 >C++ >C# で PictureBox 上に透明なコントロールを配置するにはどうすればよいですか?

C# で PictureBox 上に透明なコントロールを配置するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-25 16:11:08841ブラウズ

How Can I Place Transparent Controls Over PictureBoxes in C#?

c#

の画像ボックスを制御することで透明性を達成します C#WindowsフォームのPictureBoxesへの透明なコントロールの重複アプリケーションには、設計者がこれを直接サポートしていないため、回避策が必要です。 これを解決する方法は次のとおりです

設計時の課題:

標準のWindowsフォームデザイナーは、

の内側

a PictureBoxの配置を防ぎます。 試してみると、コントロールの親がフォームになり、PictureBoxイメージの背後に不透明な背景が生じます。 メソッド1:プログラム制御子育て

このアプローチは、ランタイム中にコントロールの親を動的に変更します: このコードスニペットは、

コントロール(またはその他のコントロール)を移動して

の子になり、その位置を維持し、背景を透明に設定します。

<code class="language-csharp">public Form1() {
    InitializeComponent();
    Point pos = label1.Parent.PointToScreen(label1.Location);
    pos = pictureBox1.PointToClient(pos);
    label1.Parent = pictureBox1;
    label1.Location = pos;
    label1.BackColor = Color.Transparent;
}</code>
メソッド2:カスタムピクチャボックスコントロール

label1 pictureBox1よりエレガントなデザインタイムソリューションについては、カスタムPictureboicboxコントロールを作成してください:

このカスタムクラスは、を使用して、デザイナー内でコントロールを直接追加することができ、透明性を維持できます。 デザイナーでは、PictureBoxのタイプを

に変更します

ニーズに最適な方法を選択します。 方法2は、よりクリーンな設計時間エクスペリエンスを提供し、方法1は小規模なプロジェクトのためのより簡単なソリューションを提供します。 オーバーレイコントロールの

プロパティを真の透明性のために
<code class="language-csharp">using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;    // Add System.Design reference

[Designer(typeof(ParentControlDesigner))]
public class PictureContainer : PictureBox { }</code>
に設定することを忘れないでください。

以上がC# で PictureBox 上に透明なコントロールを配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。