固定图形绘制区域大小
|
我刚刚开始学习GDI +系统来绘制线,圆等。我已经创建了一个组件(扫描器),该组件继承了要绘制的Panel(不确定面板或图片框是否是最好的)。
目前,在“扫描仪”上,我正在其上绘制一个圆。可以将组件添加到winform中,并且当winform调整大小时,使用停靠将调整大小。目前,我正在获取组件的大小以计算圆的大小,但是我要做的基本上是说无论组件的大小如何,“画布”始终为300 x 300宽,所以我可以说圆应该以25x25定位,尺寸为250x250。
您可能会从名称“扫描仪”中猜到,我想在其上绘制点,但是这些点将从中心(150,150)位置计算得出。
下面是我拥有的基本上画出圆圈的代码。
非常感谢您对此提供的任何帮助。
public partial class Scanner : Panel
{
public Scanner() {
InitializeComponent();
this.DoubleBuffered = true;
}
protected override void OnPaint(PaintEventArgs e) {
Graphics g = e.Graphics;
Draw(g);
base.OnPaint(e);
}
protected override void OnResize(EventArgs e) {
Graphics g = this.CreateGraphics();
Draw(g);
base.OnResize(e);
}
private void Draw(Graphics g) {
g.Clear(Color.Black);
g.PageUnit = GraphicsUnit.Pixel;
Pen green = new Pen(Color.Green);
Font fnt = new Font(\"Arial\", 10);
SolidBrush sb = new SolidBrush(Color.Red);
int pos = (this.Width < this.Height ? this.Width : this.Height) / 2;
int size = (int)(pos * 1.9);
pos -= ((int)size / 2);
g.DrawEllipse(green, pos, pos, size, size);
g.DrawString(this.Width.ToString(), fnt, sb, new Point(0, 0));
}
}
没有找到相关结果
已邀请:
1 个回复
勘掸府迫路