C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

フォームの透明


(過去ログ 8 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■8349 / inTopicNo.1)  フォームの透明
  
□投稿者/ ポンチャン 二等兵(1回)-(2006/11/17(Fri) 17:20:12)

分類:[C#] 


分類:[C#] 

初めまして、C#初心者のポンです。

フォームの透明について分からないことがあるので質問させてもらいます。

フォームが透明の状態で、フォーム上に線を描くと、描いた線も一緒に透明になってしまいますが、描いた線を不透明にする方法はあるのでしょうか?

知っている方がいたら教えていただきたいです。

宜しくお願い致します。

0
引用返信 編集キー/
■8350 / inTopicNo.2)  Re[1]: フォームの透明
□投稿者/ ダッチ 軍曹(76回)-(2006/11/17(Fri) 17:51:34)

分類:[C#] 

フォーム上に線を描いているのは、どのようにして描いているのでしょうか。

OnPaint メソッドで行っていて、線の色が透明にしている色と同じ場合は透明になってしまいます。
Paint メソッドで行えば、同じ色でも透明にはなりません。

もう少し詳しい情報をいただけませんか。

0
引用返信 編集キー/
■8351 / inTopicNo.3)  Re[2]: フォームの透明
□投稿者/ ポンチャン 二等兵(2回)-(2006/11/17(Fri) 18:11:42)

分類:[C#] 

すいません。全然情報がたりませんでした。

フォームのOpacityを0.1に設定。

OnPaintメソッドをオーバーライドして下記の用に描画しています。

protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
Pen pen = new Pen(Color.FromArgb(255, 255, 0, 0), 1.5F);

grfx.DrawLine(任意の値);

}

お手数おかけしますが宜しくお願い致します。

0
引用返信 編集キー/
■8368 / inTopicNo.4)  Re[3]: フォームの透明
□投稿者/ ダッチ 軍曹(77回)-(2006/11/18(Sat) 12:49:53)

分類:[C#] 

> OnPaint メソッドで行っていて、線の色が透明にしている色と同じ場合は透明になってしまいます。

本日もう一度確認してみたら OnPaint でも透明になりませんでした。
環境は(手元にC# 環境が無い為、VB2005)
自分でもちょっとわからなくなってきました。
何をしても、線を描画した場合は表示されています。

確認ですが、
フォームを透明にするのは TransparencyKey プロパティを使用していますよね。
色は何を設定していますか。
また、フォームの BackColor プロパティには何を設定していますか。

> grfx.DrawLine(任意の値);
任意の値に直前で生成した Pen を使用しているのですよね。

こちらの環境で現象が発生させられません。
もう少し情報をいただけますでしょうか。

0
引用返信 編集キー/
■8369 / inTopicNo.5)  Re[4]: フォームの透明
□投稿者/ 魔界の仮面弁士 中佐(204回)-(2006/11/18(Sat) 14:04:05)

分類:[C#] 

とりあえず、不透明ウィンドウと半透明ウィンドウを重ね合わせて表現するとか。

No8368(ダッチさんの記事)
> フォームを透明にするのは TransparencyKey プロパティを使用していますよね。
そうではなく、
No8351(ポンチャンさんの記事)
> フォームのOpacityを0.1に設定。
なのでは。

0
引用返信 編集キー/
■8374 / inTopicNo.6)  Re[5]: フォームの透明
□投稿者/ ダッチ 軍曹(78回)-(2006/11/18(Sat) 17:41:12)

分類:[C#] 

No8369に返信(魔界の仮面弁士さんの記事)
> とりあえず、不透明ウィンドウと半透明ウィンドウを重ね合わせて表現するとか。
>
> ■No8368(ダッチさんの記事)
>>フォームを透明にするのは TransparencyKey プロパティを使用していますよね。
> そうではなく、
> ■No8351(ポンチャンさんの記事)
>>フォームのOpacityを0.1に設定。
> なのでは。

あ、そういうことですか。
だから
> フォームのOpacityを0.1に設定。
というわけですね。

だったら
> とりあえず、不透明ウィンドウと半透明ウィンドウを重ね合わせて表現するとか。
とやるしかなさそうですね。
このときにフォームを移動しようとすると、
不透明ウィンドウと半透明ウィンドウで遅延して移動しているようになったりするんですよ。
そこら辺の二つのフォームを一つのフォームとして扱うのがちょっと厄介かもしれませんね。

# 前々から WPF を使用すると、こういうことが一つのフォームで出来るのではと期待しております。

0
引用返信 編集キー/
■8403 / inTopicNo.7)  Re[6]: フォームの透明
□投稿者/ ポンチャン 二等兵(4回)-(2006/11/20(Mon) 11:13:01)

分類:[C#] 

私の情報不足の為に、お手数お掛けしてすいませんでした。

>不透明ウィンドウと半透明ウィンドウを重ね合わせて表現するとか。

なる程そういう手もありましたか…全然思い浮かばなかったです。
ありがとうございます。
一応これでやって見ます。

ダッチさん、魔界の仮面弁士さん、情報のご提供ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -