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