【C#】フォームアプリケーションで透過PNGを表示する方法


この記事はプロモーションを含みます。

C#

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の演出やゲーム開発、カスタムツールなど、さまざまな場面で活用できます。
この記事が参考になれば幸いです。

コメント

タイトルとURLをコピーしました