C # - Изменение SizeMode Picturebox - PullRequest
       33

C # - Изменение SizeMode Picturebox

0 голосов
/ 11 декабря 2018
    private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog open = new OpenFileDialog();
        open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.png; *.bmp)|*.jpg; *.jpeg; *.gif; *.png; *.bmp";
        if(open.ShowDialog() == DialogResult.OK)
        {
            tbFileName.Text = open.FileName;
            pictureBox1.Image = new Bitmap(open.FileName);
        }
    }

Поэтому я хочу сделать оператор if, если изображение слишком велико для начального размера поля изображения (520, 301), задайте для режима размера окна изображения автоматический размер, в противном случае просто вставьте его туда.

Я почти уверен, что вы можете изменить его, используя это:

picturebox1.SizeMode = PictureBoxSizeMode.AutoSize;

Но я не знаю, как написать оператор if.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вы можете временно сохранить свое изображение перед тем, как назначить его для вашего ящика с картинками, и сравнить его размер с размером вашего ящика.

private void button1_Click(object sender, EventArgs e)
{
   OpenFileDialog open = new OpenFileDialog();
   open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.png; *.bmp)|*.jpg; *.jpeg; *.gif; *.png; *.bmp";
   if (open.ShowDialog() == DialogResult.OK)
   {
      Bitmap tmp = new Bitmap(open.FileName);

      if(tmp.Height >= pictureBox1.Height || tmp.Width >= pictureBox1.Width)
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;

      pictureBox1.Image = tmp;

   }
}
0 голосов
/ 11 декабря 2018

Просто загрузите ваш файл в Bitmap, а затем сравните его свойства Height и Width с нашим нестандартным размером (500 x 301).как

...
tbFileName.Text = open.FileName;

using (Bitmap bmp = new Bitmap(open.FileName))
{
    if (bmp.Height >= 301 && bmp.Width >= 500)
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;

    pictureBox1.Image = bmp;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...