FormクラスのTransparencyKeyプロパティを使い、その色を透過色として用いたBitmapをFormクラスのBackgroundImageプロパティに指定すれば、カラーキーを使った複雑な形状のウィンドウを作ることができる。 一方、不定形のリージョン(Region)を作成し、FormクラスのRegionプロパティに指定することでも、リージョンに合わせた形状のウィンドウを作ることができる。
ただし、RegionクラスやBitmapクラスには画像からリージョンを作成するメンバが用意されていないため、自前で実装する必要がある。
以下のコードでは、αチャンネルを含む画像(透過PNG)を読み込み、α値が25%未満の部分を透明とみなしてリージョンを作成している。 また作成したリージョンをFormに割り当て、画像の半透明部分に合わせた形状のウィンドウとなるようにしている。 この例ではαチャンネルをもとにリージョンを作成しているが、カラーキーを使うように実装する事も可能。
実装
実行例
使用した画像。
上記の画像を使用した実行結果。