任務
實現一個簡單圖片查看工具,可在窗口中顯示選定的圖片,並且窗口大小隨圖片自動改變。
效果圖
打開小圖片:
打開大圖片:
關鍵代碼
控件
圖片控件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,如下圖:
Button的Dock選擇Bottom:
設完以后,窗口就變成了這樣:
設置AutoSize
PictureBox的SizeMode都設為AutoSize:
窗口的AutoSize設為True,AutoSizeMode設為GrowAndShrink(增大或縮小):
這樣它們都會根據自己的內容,改變自己的大小了。
完整代碼
大功告成,完整代碼如下:
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); } } } }







