C# PanelのRegion設定について
ボタンクリックにてPanelのRegion領域を変更したいのですが、勝手にリサイズされて困っております。
panel1の初期Location.X=0,Location.Y=0
のときはうまくいくのですが、初期Locationに値が入ると、矩形領域自体がリサイズされてしまいます。
(矩形領域が小さくなります。)
なお、下記コードはテスト様に作成したもので、panel1のサイズを取得して、GraphicsPath からRegionを設定しています。
同じサイズなので、変化はないハズなのですが、初期Locationに値を設定すると、リサイズされてしまいます。
panel1のプロパティは
panelのAutoSize=False
Dock=None
Margin=0,0,0,0
です。
private void button1_Click(object sender, EventArgs e)
{
Rectangle rect = new Rectangle(panel1.Location.X,panel1.Location.Y,
panel1.Width,panel1.Height);
GraphicsPath path = GetRoundRect(rect, 10);
Graphics g = CreateGraphics();
g.SmoothingMode = SmoothingMode.AntiAlias;
panel1.Region = new Region(path);
}
public GraphicsPath GetRoundRect(Rectangle rect, int radius)
{
path.StartFigure();
path.AddLine(rect.Left, rect.Top, rect.Right, rect.Top);
path.AddLine(rect.Right, rect.Top,rect.Right, rect.Bottom);
path.AddLine(rect.Right, rect.Bottom,rect.Left, rect.Bottom);
path.AddLine(rect.Left, rect.Bottom,rect.Left, rect.Top);
path.CloseFigure();
return path;
}
アドバイスよろしくお願いいたします。
お礼
ありがとうございます Bitmap2に幅,高さを指定するが出来ていなかったんですね。 大変助かりました ありがとうございます。