在c#中可以使用PictureBox控件來呈現圖像,圖像資源可以來自文件,也可以是存在內存中的位圖對象。可以顯示本地圖像文件或來自網絡的圖片,也可以來自項目文件中的圖像。
從URI加載圖像文件。
調用Load(同步加載)或者LoadAsync(異步加載)方法都可以從指定的URI加載圖像。如果圖像較大,可以使用LoadAsync方法異步加載,這樣可以保證用戶界面 能夠響應用戶操作,而出現卡死現象
如果使用異步加載,還可以處理LoadProgressChanged事件,當加載的進度發生改變時就會引發該事件。當圖像被加載改變或取消加載時會發生LoadCompleted事件。
1、創建一個工程
2、從工具箱中拖出TextBox作為圖片路徑的輸入,Button作為確認加載的按鈕,PictureBox作為圖片加載的容器
布局如圖

3、添加按鍵事件
private void button1_Click(object sender, EventArgs e) { //判斷txtURI字符是否為空 if (string.IsNullOrWhiteSpace(txtURI.Text)) { MessageBox.Show("請輸入圖像URI", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //關閉加載按鈕 button1.Enabled = false; //異步加載圖像,加載txtURI的圖像 pictureBox1.LoadAsync(txtURI.Text); }
4、因為我們使用的是異步加載的方式,所以可以添加,LOadProgerssChanged(加載進度)和LoadComplete(加載錯誤)事件
private void pictureBox1_LoadProgressChanged(object sender, ProgressChangedEventArgs e) { //顯示進度 this.lblMsg.Text = string.Format("當前進度:{0}.", e.ProgressPercentage); } private void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e) { //加載錯誤處理事件 if (e.Error != null) { lblMsg.Text = "錯誤信息:" + e.Error.Message; return; } //如果取消 if (e.Cancelled) { lblMsg.Text = "操作被取消。"; } else { lblMsg.Text = "加載完成."; } button1.Enabled = true; }
運行程序,在文本框中輸入圖像URI,可以是本地的圖像完整路徑,也可以是網絡圖片地址。


