




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、GifBox是一個(gè)專(zhuān)用于顯示GIF圖片的控件,當(dāng)然PictureBox也可以顯示,但是當(dāng)我在寫(xiě) 一個(gè)類(lèi)似QQ表情控件的時(shí)候,總感覺(jué)它顯示GIF的時(shí)候有點(diǎn)停頓的感覺(jué),然后就寫(xiě)了這個(gè)比較 簡(jiǎn)單的控件,代碼不是很多,但是卻得到了我想要的效果。這里介紹下用到得一個(gè)重要的.NET框架中的類(lèi):ImageAnimator,動(dòng)畫(huà)處理包含基于時(shí)間的 幀的圖像。這是一個(gè)全部是靜態(tài)函數(shù)的類(lèi),我們看看他包含的幾個(gè)方法: using System;namespace System.Drawing/摘要:/動(dòng)畫(huà)處理包含基于時(shí)間的幀的圖像。public sealed class ImageAnimator/摘要:/將多幀圖
2、像顯示為動(dòng)畫(huà)。/參數(shù):/ onFrameChangedHandler:/ 一個(gè)EventHandler對(duì)象,它指定在動(dòng)畫(huà)幀發(fā)生更改時(shí)調(diào)用的方法。/ image:/ 要?jiǎng)赢?huà)處理的System.Drawing.Image對(duì)象。/返回結(jié)果:/此方法不返回值。public static void Animate(Image image, EventHandler onFrameChangedHandle r);/摘要:/返回一個(gè)布爾值,該值指示指定圖像是否包含基于時(shí)間的幀。/參數(shù):/ image:/要測(cè)試的 System.Drawing.Image 對(duì)象。/返回結(jié)果:/如果指定圖像包含基于時(shí)間的幀,則
3、此方法返回true;否則返回false。public static bool CanAnimate(Image image);/摘要:/終止正在運(yùn)行的動(dòng)畫(huà)。/ /參數(shù):/ onFrameChangedHandler:/ 一個(gè)EventHandler對(duì)象,它指定在動(dòng)畫(huà)幀發(fā)生更改時(shí)調(diào)用的方法。/ image:/要停止動(dòng)畫(huà)處理的System.Drawing.Image對(duì)象。/返回結(jié)果:/此方法不返回值。public static void StopAnimate(Image image, EventHandler onFrameChangedHand ler);/摘要:/使該幀在當(dāng)前正被動(dòng)畫(huà)處理的所
4、有圖像中前移。新幀在下一次呈現(xiàn)圖像時(shí)繪制。/返回結(jié)果:/此方法不返回值。public static void UpdateFrames();/摘要:/使幀在指定的圖像中前移。新幀在下一次呈現(xiàn)圖像時(shí)繪制。此方法只適用于包含基于時(shí)間的幀的圖像。/參數(shù):/ image:/要為其更新幀的System.Drawing.Image對(duì)象。/返回結(jié)果:/此方法不返回值。public static void UpdateFrames(Image image);看了就應(yīng)該很容易就理解這個(gè)類(lèi)和每個(gè)方法的作用了。有了這個(gè)類(lèi),實(shí)現(xiàn)我想要的功能就簡(jiǎn)單了:),繼承Control,添加一些需要的 屬性,然后最重要的就是重寫(xiě)O
5、nPaint函數(shù)了。protected override void OnPaint(PaintEventArgs e)base.OnPaint(e);if (_image != null)/每次畫(huà)之前更新到圖片的下一幀。UpdateImage();e.Graphics.DrawImage(_image,ImageRectangle,0,0,_image.Width,_image.Height,GraphicsUnit.Pixel);ControlPaint.DrawBorder(e.Graphics,ClientRectangle,_borderColor,ButtonBorderStyle.
6、Solid);需要注意的是每次畫(huà)之前都要更新到圖片的下一幀。下面介紹第三種方法,這種方法不需要對(duì)ActiveX控件的引用,需要用到我前面寫(xiě)的一篇文章(一 個(gè)專(zhuān)用于顯示GIF的控件GifBox)中的GifBox控件,看看實(shí)現(xiàn)的方法:public bool InsertImageUseGifBox(string path)日田(try捽(IGifBox gif = new GifBox();Igif.BackColor = base.BackColor;Igif.Image = Image.FromFile(path);RichEditOle.InsertControl(gif);return true;catch (Exception)白由return false;通過(guò)上面三個(gè)方法,我們就可以很方便的把GIF插入到RichTextBox中了,看看使用的代碼:日國(guó)if(radUseImageOle.Checked)chatRichTextBox1.InsertImageUseImageOle(.Face211.gif);else if (radUseDynamic.Checked)日田chatRi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 退役重武器測(cè)試題及答案
- 2023-2024學(xué)年山西省太原市迎澤區(qū)三年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 小黑子考試試題及答案
- 2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能押題練習(xí)試題A卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備中級(jí)技能能力檢測(cè)試卷B卷附答案
- 2023年全國(guó)翻譯專(zhuān)業(yè)資格(水平)考試英語(yǔ)三級(jí)筆譯實(shí)務(wù)試題真題及答案
- 配電柜知識(shí)培訓(xùn)課件
- 卸妝膏護(hù)膚知識(shí)培訓(xùn)課件
- 小紅船讀后感
- 市場(chǎng)營(yíng)銷(xiāo)策略制定服務(wù)協(xié)議
- 小學(xué)生春耕教學(xué)課件
- 2024年南信語(yǔ)文數(shù)學(xué)試卷(含答案)
- 2025年個(gè)人投資合同電子版模板
- 材料大課堂鈦合金(課堂PPT)
- NRC蛋雞飼養(yǎng)標(biāo)準(zhǔn)
- 項(xiàng)目總工崗位職責(zé)
- 最新-路面標(biāo)線技術(shù)交底
- 醫(yī)院卒中質(zhì)量控制考核方案
- 立風(fēng)井瓦斯管路安裝施工組織設(shè)計(jì)
- 附件 流動(dòng)人員人事檔案轉(zhuǎn)遞通知單存根
- 計(jì)算機(jī)信息檢索第三章
評(píng)論
0/150
提交評(píng)論