1

カスタムフォームを開発していますが、非クライアント領域を透明にしたいと考えています。メッセージ番号「0x85」を介して非クライアント領域の描画を処理しています。これは私がこれまでに試したことです:

  • 色 "Color.Transparent" を使用してペイント -> 非クライアント領域が黒くペイントされました。赤、黒、または緑の画像を使用した場合、完全に機能しますが、透明 = 黒
  • フォームのサイズの透過画像を作成し、メソッド「myGraphics.DrawImage("img.png")」を使用しました。背景は黒のまま。赤、黒、または緑の画像を使用した場合、それも完全に機能します...
  • 何もペイントしないでください(私が透明のままであることを望んでいます)...うまくいきませんでした
4

1 に答える 1

1

ウィンドウの一部を透明にするには、レイヤリングと呼ばれるビデオ アダプタ機能であるハードウェア サポートが必要です。フォームの TransparencyKey プロパティを使用します。Color.Fuchsia のような珍しい色に設定します。そして、その色で描画して、ビデオ アダプターにピクセルを省略させます。

于 2012-05-28T14:17:25.633 に答える