http://www.openwinforms.com/creating_cool_gradient_panel_gdi.html
は私が解決策を見つけました。フォーム塗料で
追加:フォーム負荷に
this.BackColor = Color.Lime;
this.TransparencyKey = Color.Lime;
var hb = new HatchBrush(HatchStyle.Percent60, this.TransparencyKey);
e.Graphics.FillRectangle(hb, this.DisplayRectangle);
をCTRL =パネルのパネルのエッジのラウンドを行います。
Rectangle bounds = new Rectangle(0, 0, ctrl.Width, ctrl.Height);
int iCornerRadius = 20;
GraphicsPath gpath = new GraphicsPath();
gpath.AddArc(bounds.X, bounds.Y, iCornerRadius, iCornerRadius, 180, 90);
gpath.AddArc(bounds.X + bounds.Width - iCornerRadius, bounds.Y, iCornerRadius, iCornerRadius, 270, 90);
gpath.AddArc(bounds.X + bounds.Width - iCornerRadius, bounds.Y + bounds.Height - iCornerRadius, iCornerRadius, iCornerRadius, 0, 90);
gpath.AddArc(bounds.X, bounds.Y + bounds.Height - iCornerRadius, iCornerRadius, iCornerRadius, 90, 90);
gpath.CloseAllFigures();
ctrl.Region = new Region(gpath);
ctrl.Show();
これは難しいことです。 winformsで丸い角のコントロールを作成することはそれほど難しくありませんが、半透明のフォームと組み合わせるのは難しいです。 私はおそらくこれを間違った方法で解決しましたが、私がそれを手に入れようとしていた頃には、私はそれを変更できないほど多くのコードが書かれていました。 正しい方法は、[この回答](http://stackoverflow.com/a)に書かれているように[Hans Passant](http://stackoverflow.com/users/17034/hans-passant)のトリックから始めるのがおそらくです。/10267279/3094533)を使用して半透明の背景を作成し、透明キーがコーナーの周囲に表示されないようにする方法を見つけます。 –
私は現在、適切な答えを書く時間がありません。しかし、他の人が助けてくれるかもしれません。ハンスはあなたが彼を必要とする時、どこにいるのですか? –
あなたの返事を待っています.... – Rocky