![C#實(shí)現(xiàn)桌面圖片飄浮效果_第1頁(yè)](http://file4.renrendoc.com/view/63c5cce03a3e43669d3d39a632b86817/63c5cce03a3e43669d3d39a632b868171.gif)
![C#實(shí)現(xiàn)桌面圖片飄浮效果_第2頁(yè)](http://file4.renrendoc.com/view/63c5cce03a3e43669d3d39a632b86817/63c5cce03a3e43669d3d39a632b868172.gif)
![C#實(shí)現(xiàn)桌面圖片飄浮效果_第3頁(yè)](http://file4.renrendoc.com/view/63c5cce03a3e43669d3d39a632b86817/63c5cce03a3e43669d3d39a632b868173.gif)
![C#實(shí)現(xiàn)桌面圖片飄浮效果_第4頁(yè)](http://file4.renrendoc.com/view/63c5cce03a3e43669d3d39a632b86817/63c5cce03a3e43669d3d39a632b868174.gif)
![C#實(shí)現(xiàn)桌面圖片飄浮效果_第5頁(yè)](http://file4.renrendoc.com/view/63c5cce03a3e43669d3d39a632b86817/63c5cce03a3e43669d3d39a632b868175.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C# 實(shí)現(xiàn)桌面圖片飄浮效果讀大學(xué)時(shí)寫(xiě)的桌面飄著Love( 完全用 GDI+ 繪制的) ,現(xiàn)在想讓桌面飄著圣誕老人,其實(shí)稍微研究下,大家都會(huì)寫(xiě),于是我想讓代碼更優(yōu)美點(diǎn)。如果想讓桌面既飄著Love 又飄著圣誕老人,怎么辦呢,象裝飾模式?不過(guò)不是。如果我想讓程序全部封裝成dll 后,別人也能用很簡(jiǎn)單的代碼進(jìn)行擴(kuò)展,怎么辦呢?于是我定義好了整個(gè)結(jié)構(gòu),可以繼承類(lèi)然后寫(xiě)很簡(jiǎn)單的程序完成功能,無(wú)需修改我的類(lèi),可以支持運(yùn)行時(shí) 熱插拔要顯示到桌面飄著的Fly (比如通過(guò)配置app.config ) .先看效果圖吧:600) this.width = 600;attachimg(this, load);src_c
2、etemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachmentid=11235christmas.jpg(168.12 K)2008-12-13 21:18:21 上面是飄著圣誕老人600) this.width = 600;attachimg(this, load);src_cetemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachmentid=11236gdidiagram.jpg(107.10 K)2008-12-13 21:18:21 上面是飄著
3、LOVE600) this.width = 600;attachimg(this, load);src_cetemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachmentid=11237together.jpg(139.79 K)2008-12-13 21:19:19 上面是飄著LOVE 和圣誕老人一起600) this.width = 600;attachimg(this, load);src_cetemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachm
4、entid=11238rightclick.jpg(102.46 K)2008-12-13 21:19:19 上面是右鍵關(guān)于或者退出600) this.width = 600;attachimg(this, load);src_cetemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachmentid=11239configure.jpg(135.58 K)2008-12-13 21:20:23 上面是關(guān)于600) this.width = 600;attachimg(this, load);src_cetemp= HYPERL
5、INK /attachment.aspx?attac /attachment.aspx?attac hmentid=11240 classDiagram.jpg(67.73 K) 2008-12-13 21:20:23 上面是類(lèi)圖600) this.width = 600;attachimg(this, load);src_cetemp= HYPERLINK /attachment.aspx?attac /attachment.aspx?attachmentid=11241structure.jpg(15.82 K)2008-12-13 21:26:09 上面是程序結(jié)構(gòu)圖由于多種原因,我電腦W
6、ORD 都沒(méi),所以沒(méi)什么好的畫(huà)圖工具好表達(dá)上面的類(lèi)圖的關(guān)系。其中 ProxyImage 類(lèi)中采用了策略模式對(duì)采用什么圖片進(jìn)行出來(lái)。在上面類(lèi)圖中:第一個(gè)注釋里說(shuō): “ MainForm 發(fā)送多個(gè)裝載圖片的命令給 ProxyImage, 而 ProxyImage 只返回一個(gè)圖片給MainForm 。 ” 為什么是返回一個(gè)圖片呢, 原因有兩點(diǎn):第一:一個(gè)ILIST 的一個(gè)對(duì)象只能裝一個(gè)。第二:如果用其他方式返回兩個(gè), 則會(huì)出現(xiàn)這種情況: 如果顯示 LOVE ,桌面可以飄100 個(gè),但如果桌面同時(shí)飄LOVE 和圣誕老人,則桌面會(huì)飄著: 200 個(gè),如果以后擴(kuò)展,桌面飄著很多個(gè),那桌面將會(huì)成為: N*1
7、00 個(gè),這個(gè)肯定不能這樣。于是綜合一些設(shè)計(jì)模式,我改造了下,變成現(xiàn)在我的程序的樣子了。如果我的程序全部編譯為類(lèi)庫(kù) DLL 文件了, 要想擴(kuò)展也非常方便。有兩種情況:第一:用 GDI+ 繪制圖片,比如我這里的 LOVE 。第二:直接用圖片。第一種情況,擴(kuò)展的類(lèi)繼承GdiImage 抽象類(lèi),重載DrawImage 方法, 這個(gè)方法沒(méi)有其它任何額外的代碼, 只做GDI+ 繪制;第二種情況,擴(kuò)展的類(lèi)直接繼承IImage 接口,實(shí)現(xiàn)GetBitmap 方法就行了。如果想讓桌面飄著的物體在運(yùn)行時(shí)加載它,則可配置相應(yīng)的配置文件則可。程序中起橋梁作用的 proxyImage 類(lèi)的代碼如下: proxyIma
8、ge 類(lèi)代碼 #region版權(quán)/*版權(quán)歸 Lawson 所有QQ : 313769823Blog:*/#endregionusing System;using System.Collections;using System.Collections.Generic;using System.Drawing;using System.Text;namespace Main/ / 負(fù)責(zé)桌面飄動(dòng)的圖片處理/ public class ProxyImageprivate static Hashtable imageList = new Hashtable();/ / 默認(rèn)構(gòu)造函數(shù)/ public Pr
9、oxyImage()/無(wú)操作/ / 添加圖片種類(lèi)/ / 圖片類(lèi)型 public static void AddImage(IImage image)imageList.Add(imageList.Count + 1, image);/ / 獲取圖片/ / 圖片 public static Image GetImage()object obj = null;Image result = null;if (imageList.Count = 1)obj = imageList1;elseRandom random = new Random();obj = imageListrandom.Next(1,imageList.Count);if (obj = null)/防止擴(kuò)展圖片時(shí),引用生成圖片類(lèi)而沒(méi)先實(shí)例化它throw new Exception( 添加生成圖片類(lèi)時(shí) 請(qǐng)先實(shí)例化該類(lèi));obj = obj as IImage;if (obj != null)result = (IImage)obj).GetBitmap();else時(shí)由錯(cuò)throw
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年骨科關(guān)節(jié)用藥合作協(xié)議書(shū)
- 2022-2023學(xué)年廣西欽州市四年級(jí)(上)期末數(shù)學(xué)試卷
- 2025年逆變式電焊機(jī)合作協(xié)議書(shū)
- 2025年九年級(jí)班主任心得樣本(2篇)
- 2025年買(mǎi)賣(mài)協(xié)議參考范文(2篇)
- 2025年五人股東合作的協(xié)議(2篇)
- 2025年代課教師勞動(dòng)合同標(biāo)準(zhǔn)版本(4篇)
- 2025年代交社會(huì)保險(xiǎn)協(xié)議(三篇)
- 2025年二年級(jí)美術(shù)教學(xué)工作總結(jié)(5篇)
- 2025年買(mǎi)賣(mài)房屋定金協(xié)議簡(jiǎn)單版(三篇)
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 生物 含答案
- 高考日語(yǔ)閱讀理解練習(xí)2篇-高考日語(yǔ)復(fù)習(xí)
- 2025年湖南省通信產(chǎn)業(yè)服務(wù)限公司春季校園招聘76人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《電影之創(chuàng)戰(zhàn)紀(jì)》課件
- 印刷基礎(chǔ)知識(shí)培訓(xùn)資料
- NB/T 11536-2024煤礦帶壓開(kāi)采底板井下注漿加固改造技術(shù)規(guī)范
- 2024-2025學(xué)年人教版五年級(jí)(上)英語(yǔ)寒假作業(yè)(一)
- 【課件】九年級(jí)化學(xué)下冊(cè)(人教版2024)-【新教材解讀】義務(wù)教育教材內(nèi)容解讀課件
- 開(kāi)題報(bào)告-鑄牢中華民族共同體意識(shí)的學(xué)校教育研究
- GA/T 761-2024停車(chē)庫(kù)(場(chǎng))安全管理系統(tǒng)技術(shù)要求
- 2025屆貴州省六盤(pán)水市第二中學(xué)高三適應(yīng)性調(diào)研考試數(shù)學(xué)試題含解析
評(píng)論
0/150
提交評(píng)論