C# - 让窗口随图片自动改变大小


任务

实现一个简单图片查看工具,可在窗口中显示选定的图片,并且窗口大小随图片自动改变。

效果图

打开小图片:

image

打开大图片:

image

关键代码

控件

图片控件PictureBox。让它显示指定的图片:

pictureBox1.Image = Image.FromFile(filename);

选择图片文件,使用OpenFileDialog,通过Filter指定可显示哪些后缀的文件:

var dialog = new OpenFileDialog();
dialog.Filter = "图片(*.jpg/*.png/*.gif/*.bmp)|*.jpg;*.png;*.gif;*.bmp";

布局

设置Dock

窗口中有两个控件,一个PictureBox用于显示图片,一个Button用于选择图片。通地设置它们的Dock,可以让它们始终依靠在父容器的某一边,不论它如何改变大小。

PictureBox的Dock选择Fill,如下图:

image

Button的Dock选择Bottom:

image

设完以后,窗口就变成了这样:

image

设置AutoSize

PictureBox的SizeMode都设为AutoSize:

image

窗口的AutoSize设为True,AutoSizeMode设为GrowAndShrink(增大或缩小):

image

这样它们都会根据自己的内容,改变自己的大小了。

完整代码

大功告成,完整代码如下:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            var dialog = new OpenFileDialog();
            dialog.Filter = "图片(*.jpg/*.png/*.gif/*.bmp)|*.jpg;*.png;*.gif;*.bmp";
            if (dialog.ShowDialog() == DialogResult.OK) {
                var filename = dialog.FileName;
                pictureBox1.Image = Image.FromFile(filename);
            }
        }
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM