C#のフォームアプリケーションで透過PNG画像を表示する方法を紹介します。
PictureBoxとTransparencyKeyを活用して、背景を透過するUIを実装します。
はじめに
Windowsフォームアプリケーションで、透過PNGを正しく表示する方法を知っていますか?
透過PNGを使用しても普通に表示しただけでは、透過されず透過部分にフォームの背景が表示されてしまいます。
PNG画像の透過部分を活かしてUIを作成するには、フォーム側の設定が重要です。
適切に設定することで、以下のように透過部分にはデスクトップや他のアプリケーションが表示されるようになります。

この記事では、PictureBoxとフォームのTransparencyKeyプロパティを活用した透過PNGの表示方法を解説します。
ソースコード
以下が、透過PNG画像を表示するためのサンプルコードです。
namespace WinFormsApp1
{
public partial class Form1 : Form
{
private readonly PictureBox pictureBox = new();
public Form1()
{
InitializeComponent();
TransparentPngForm();
}
public void TransparentPngForm()
{
// フォームの設定
this.Size = new Size(640, 360);
this.BackColor = Color.Gray;
this.TransparencyKey = this.BackColor;
// PictureBoxの設定
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox.Dock = DockStyle.Fill;
// PNGファイルを読み込む
pictureBox.Image = Image.FromFile(@"C:\Workspace\sample.png");
// PictureBoxをフォームに追加
this.Controls.Add(pictureBox);
}
}
}ソースコードの解説です。
- this.BackColorとthis.TransparencyKeyを同じ色(ここではGray)に設定することで、その色が透過されます。
- PictureBoxに透過PNG画像を読み込むと、画像のアルファチャンネルが正しく適用され、フォームの背景が表示されます。
おわりに
本記事でご紹介したように、フォームアプリケーションでも簡単に透過PNGを扱えます。
透過PNGは、UIの演出やゲーム開発、カスタムツールなど、さまざまな場面で活用できます。
この記事が参考になれば幸いです。
リンク



コメント