質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

18150閲覧

重なったPictureBoxの透過方法

air_in

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/12/14 01:18

C#で2つのPictureBox(背景用と、マーカー用)を使用し、背景の上にマーカー(地図の場所を示すようなピンのイメージ)を表示したいのですが、マーカー画像の透過がうまくいきません。

public partial class Form1 : Form { Bitmap bmp = new Bitmap(@"C:\work\marker.png"); Bitmap bmp2 = new Bitmap(@"C:\work\background.jpg"); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.pictureBox1.Image = bmp; this.pictureBox1.Parent = this.pictureBox2; this.pictureBox2.Image = bmp2; } private void button1_Click(object sender, EventArgs e) { //白色の部分を透過する bmp.MakeTransparent(Color.White); this.pictureBox1.Image = bmp; } }

上記で、マーカー画像の白色の部分は透過されるのですが、透過された部分には、背景用のPictureBoxの画像ではなく、背景用のPictureBoxの背景色がそのまま見えてしまっています。
透過部分に背景画像を表示させるにはどうしたらいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

マーカー用のPictureBoxの背景色が表示されているのでは?
マーカー用のPictureBoxのBackColorをColor.Transparentにしてみてください。

投稿2018/12/14 01:34

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

air_in

2018/12/14 01:56

ご回答ありがとうございます。 お教えいただいたように、Color.Transparentを指定すると、希望通りに表示されました。 背景用のPictureBoxのBackColorを赤、マーカー用のPictureBoxの背景色はデフォルトのまま この状態で上記を実行すると、透過された部分には赤(背景用のPictureBoxのBackColor)が表示されていたので、透過はできていると思ってしまっていました。 重ねる方の、画像だけでなくPictureBoxの背景色も指定しなければならなかったんですね。 お教えいただき、ありがとうございました。 とてもたすかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問