2009-08-25 21 views
4

WinFormsとC#を使用して不規則な形状のウィンドウを作成するにはどうすればよいですか?C#Winforms不規則なウィンドウ

+0

あなたの不規則な定義は何ですか? – rahul

+0

私は、タイトルバー、枠線などを含む通常のWinFormの外観がないと推測していますか? – Svish

+0

私たちが見たいくつかのWindowsのメディアプレーヤーのスキンのような不規則なウィンドウは、四角形または丸いエッジではなく、ポイントを取得します。 – Moon

答えて

6

これを達成する方法はいくつかあります。 1つはuse use TransparencyKey(Nifleによって指摘されたポストのように)です。座標はウィンドウを参照すること

System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); 
path.AddPolygon(new[] 
{ 
    new Point(20, 20), 
    new Point(40, 10), 
    new Point(180, 70), 
    new Point(160, 260), 
    new Point(80, 140) 
}); 
path.AddEllipse(40, 40, 300, 300); 
this.Region = new Region(path); 

注なく、クライアント領域:もう一つは、フォームのRegionプロパティにRegionオブジェクトを割り当てることです。また、GraphicsPathオブジェクトの重複する数字が、デフォルトで相互に「反転」していることにも注意してください(これはpath.FillMode = FillMode.Windingを設定することによって防止できます)。