问题描述
我有一个Rectangle tmprect,然后用它绘制了一个矩形和一个按钮.
他们两个都有相同的大小.但实际上按钮的输出显示的尺寸比矩形小得多.我不知道为什么?有人可以给我提示吗?
这里的单位对他们来说是否不同?
//绘制一个矩形
graphics.DrawRectangle(tmppen,tmprect.X,tmprect.Y,tmprect.Width,tmprect.Height);
//添加一个按钮
Button btn = new Button();
btn.Location =新点(tmprect.X,tmprect.Y);
btn.Size = new Size(tmprect.Width,tmprect.Height);
this.Controls.Add(btn);
I have a Rectangle tmprect,then with it, I have drawn a rectangle as well as a button.
both of them have a same size. but actually the output of the button shows much smaller size than rectangle. I do not know why? Anyone can give me a hint?
whether here the unit are different for them?
//draw a rectangle
graphics.DrawRectangle(tmppen, tmprect.X, tmprect.Y, tmprect.Width, tmprect.Height);
//add a button
Button btn = new Button();
btn.Location = new Point(tmprect.X, tmprect.Y);
btn.Size = new Size(tmprect.Width, tmprect.Height);
this.Controls.Add(btn);
推荐答案
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
只需启用/禁用视觉样式,您就可以看到不同之处
just by enabling/disabling visual styles you can see a difference
private void Form1_Paint(object sender, PaintEventArgs e)
{
//second graphics option
System.Drawing.Graphics graphics = this.CreateGraphics();
System.Drawing.Pen tmppen = new Pen(new SolidBrush(Color.Red), 2);
System.Drawing.Rectangle tmprect = new Rectangle(5, 5, 125, 25);
System.Drawing.Rectangle tmprect2 = new Rectangle(150, 5, 125, 25);
//draw a rectangle
e.Graphics.PageUnit = GraphicsUnit.Display;
e.Graphics.DrawRectangle(tmppen, tmprect.X, tmprect.Y, tmprect.Width, tmprect.Height);
graphics.DrawRectangle(tmppen, tmprect2.X, tmprect2.Y, tmprect2.Width, tmprect2.Height);
//add a button
Button btn = new Button();
btn.Location = new Point(tmprect.X, tmprect.Y);
btn.Size = new Size(tmprect.Width, tmprect.Height);
btn.Text = e.Graphics.PageUnit.ToString() + e.Graphics.PageScale.ToString() + " " + e.Graphics.DpiX + "x" + e.Graphics.DpiY;
this.Controls.Add(btn);
Button btn2 = new Button();
btn2.Location = new Point(tmprect2.X, tmprect2.Y);
btn2.Size = new Size(tmprect2.Width, tmprect2.Height);
btn2.Text = graphics.PageUnit.ToString() + graphics.PageScale.ToString() + " " + graphics.DpiX + "x" + graphics.DpiY;
this.Controls.Add(btn2);
}
这篇关于按钮和矩形大小与预期不符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!