在中间调整PictureBox的大小

时间:2018-05-23 15:51:20

标签: c# timer size picturebox

今天我需要你的帮助来调整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属性 - 当我读类似的文章 - 改为一切(无,所有方向......)。但没有改变!

此外,我每次更改其大小时都尝试更改其位置,但这不是平滑移动来查看的内容!

2 个答案:

答案 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保持在中间。