C#實(shí)現(xiàn)桌面圖片飄浮效果_第1頁(yè)
C#實(shí)現(xiàn)桌面圖片飄浮效果_第2頁(yè)
C#實(shí)現(xiàn)桌面圖片飄浮效果_第3頁(yè)
C#實(shí)現(xiàn)桌面圖片飄浮效果_第4頁(yè)
C#實(shí)現(xiàn)桌面圖片飄浮效果_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論