【问题标题】:C# - Changing SizeMode of pictureboxC# - 更改图片框的 SizeMode
【发布时间】:2018-12-11 10:25:13
【问题描述】:
    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)来说太大了,设置图片框sizemode为autosize,否则就放在那里。

我很确定你可以使用这个来改变它:

picturebox1.SizeMode = PictureBoxSizeMode.AutoSize;

但是我不知道if语句怎么写。

【问题讨论】:

    标签: c# file bitmap jpeg picturebox


    【解决方案1】:

    只需将您的文件加载到Bitmap,然后将其HeightWidth 属性与我们的自定义大小(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;
    }
    

    【讨论】:

    • 总是包装位图创建using关键字,因为它可能会导致内存泄漏
    【解决方案2】:

    您可以在将图像分配给您的图片框之前将其临时存储,并将其大小与您的框的大小进行比较。

    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;
    
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 2011-06-23
      • 1970-01-01
      • 2014-10-13
      相关资源
      最近更新 更多