今天我需要你的帮助来调整WinForms中PictureBox
的大小,同时将其保持在中间位置
真正发生的事情是PictureBox
在左右方向变得越来越大!
这是我的代码:
public partial class Form1:Form
{
private int x = 25;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
x++;
pictureBox1.Size = new Size(x,x);
}
}
注意:
我已经尝试将Anchor属性 - 当我读类似的文章 - 改为一切(无,所有方向......)。但没有改变!
此外,我每次更改其大小时都尝试更改其位置,但这不是平滑移动来查看的内容!
答案 0 :(得分:0)
看看这种渐进式调整是否足够顺畅
PictureBox
将扩展,保持其初始中心位置
Timer
设置为.Interval = 100
。每个Timer.Tick()
,PictureBox
的大小会增加一定数量(在这种情况下为2像素)。
PictureBox.Location
值减少一半。{
一直玩它,直到找到你感到舒服的速度和尺寸值。
public partial class Form1 : Form
{
private int PictureBoxResize = 2;
public Form1()
{
InitializeComponent();
timer1.Tick += new EventHandler(this.timer1_Tick);
timer1.Interval = 100;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
pictureBox1.Location = new Point(pictureBox1.Left - (PictureBoxResize / 2),
pictureBox1.Top - (PictureBoxResize / 2));
pictureBox1.Size = new Size(pictureBox1.Width + PictureBoxResize,
pictureBox1.Height + PictureBoxResize);
}
}
答案 1 :(得分:0)
更改pictureBox1
的大小后,使用下面的代码
int righty = this.Width - (pictureBox1.Location.X + pictureBox1.Width);
int downy = this.Height - (pictureBox1.Location.Y + pictureBox1.Height);
pictureBox1.Top = (downy + pictureBox1.Top) / 2;
pictureBox1.Left = (righty + pictureBox1.Left) / 2;
我正在WinForm应用程序中使用它,并且正在工作。
它将pictureBox1
的四个边缘之间的平衡保持在form
的四个边缘之间,并将pictureBox1
保持在中间。