歡迎來到人人文庫網(wǎng)! | 幫助中心 人人文檔renrendoc.com美如初戀!
人人文庫網(wǎng)

C# 將控件內(nèi)容保存為圖片

首先要選用容器控件,將需要的控件加入到容器中。

例如:panel容器

                Bitmap newbitmap = new Bitmap(panelW.Width, panelW.Height);
                panelW.DrawToBitmap(newbitmap, new Rectangle(0, 0, newbitmap.Width, newbitmap.Height));
                newbitmap.Save(@"F:\yellowriver\aa\2011\04\25\test.gif");

 

保存整個控件為圖片

http://www.cnblogs.com/anchky/archive/2006/10/21/savectlaspic.html

    在vs2005中,MSchart的圖片保存遇到了問題。

       vs2003中,可以通過MSChart.EditCopy()方法,再從簡帖板(ClipBoard)獲得已經(jīng)繪制的圖片,然后再進(jìn)行保存圖片或者打印操作。

       Vs2005中,執(zhí)行了MSChart.EditCopy()方法之后再次取用剪貼板就會報錯,而且是很奇快的內(nèi)存錯誤。于是上MSSupport網(wǎng)站尋求相關(guān)的幫助,終于搜集到了解決的辦法。在這里向大家推薦一個通用的辦法,可以保存Control的任何狀態(tài)為圖形。
   需要增加一個輔助類:
     

 1C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志/// <summary>
 2C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志    /// 輔助類
 3C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志    /// </summary>

 4C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志    public class Win32
 5C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志    {
 6C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        [System.Runtime.InteropServices.DllImport("gdi32", EntryPoint = "BitBlt")]
 7C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        public static extern int BitBlt(int hDestDC, int x, int y, int nWidth, int nHeight, int hSrcDC, int xSrc, int ySrc, int dwRop);
 8C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        [System.Runtime.InteropServices.DllImport("user32", EntryPoint = "GetWindowDC")]
 9C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        public static extern int GetWindowDC(int hwnd);
10C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        [System.Runtime.InteropServices.DllImport("user32", EntryPoint = "ReleaseDC")]
11C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        public static extern int ReleaseDC(int hwnd, int hdc);
12C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        public const int SRCCOPY = 13369376;
13C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志
14C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志    }

      借用這個輔助類生成控件的圖形:

 1C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志/// <summary>
 2C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        /// 繪制整個控件位BitMap
 3C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        /// </summary>
 4C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        /// <param name="Control">要繪制的控件</param>
 5C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        /// <returns></returns>

 6C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        public static Bitmap CreateBitmap(Control Control)
 7C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        {
 8C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            Graphics gDest;
 9C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            IntPtr hdcDest;
10C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            int hdcSrc;
11C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            int hWnd = Control.Handle.ToInt32();
12C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            Bitmap BmpDrawed = new Bitmap(Control.Width, Control.Height);
13C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            gDest = Graphics.FromImage(BmpDrawed);
14C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            hdcSrc = Win32.GetWindowDC(hWnd);
15C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            hdcDest = gDest.GetHdc();
16C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            Win32.BitBlt(hdcDest.ToInt32(), 0, 0, Control.Width, Control.Height, hdcSrc, 0, 0, Win32.SRCCOPY);
17C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            gDest.ReleaseHdc(hdcDest);
18C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            Win32.ReleaseDC(hWnd, hdcSrc);
19C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志            return BmpDrawed;
20C 將控件內(nèi)容保存為圖片 - yellowriver - 天道酬勤 玩物喪志        }


關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

網(wǎng)站客服QQ:2881952447     

copyright@ 2020-2024  renrendoc.com 人人文庫版權(quán)所有   聯(lián)系電話:400-852-1180

備案號:蜀ICP備2022000484號-2       經(jīng)營許可證: 川B2-20220663       公網(wǎng)安備川公網(wǎng)安備: 51019002004831號

本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知人人文庫網(wǎng),我們立即給予刪除!