17
2012
08

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);            }        }    }}
« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。