原創(chuàng)|使用教程|編輯:郝浩|2013-05-08 10:57:04.000|閱讀 310 次
概述:這篇文章解釋了如何創(chuàng)建一個(gè)用來(lái)作為水印的內(nèi)置多個(gè)形狀的自定義復(fù)合形狀,該復(fù)合形狀水印將會(huì)以如下圖所示的方式進(jìn)行顯示(并不會(huì)妨礙或者遮擋電子表格本身)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
shape classes形狀類的一個(gè)的固有功能就是能夠將其他形狀對(duì)象嵌入其中。這個(gè)功能用來(lái)創(chuàng)建復(fù)合形狀是非常適合的。這篇文章解釋了如何創(chuàng)建一個(gè)用來(lái)作為水印的內(nèi)置多個(gè)形狀的自定義復(fù)合形狀,該復(fù)合形狀水印將會(huì)以如下圖所示的方式進(jìn)行顯示(并不會(huì)妨礙或者遮擋電子表格本身)。
》》》免費(fèi)下載Spread Studio for .NET
下面就是具體的示例:
要?jiǎng)?chuàng)建這個(gè)自定義復(fù)合形,需要先定義一個(gè)叫做CompanyWatermark的自定義形狀類,并設(shè)置屬性來(lái)自定義外形。這個(gè)自定義形狀融合了多種元素:一個(gè)從指定顏色到透明的漸變褪色背景;嵌入的形狀中包含了一個(gè)公司標(biāo)志;一個(gè)單獨(dú)的嵌入式文本形狀用來(lái)拼寫成公司名稱;一個(gè)文本形狀提供額外的信息,比如網(wǎng)址、公司的座右銘或安全等級(jí)。
派生自定義類
首先從表針的RectangleShape類中開始派生類。這將創(chuàng)建一個(gè)矩形區(qū)域用來(lái)嵌入形狀。當(dāng)然也可以使用其他形狀如橢圓形或多邊形,但是這樣的話嵌入圖形有可能被剪切剪(因?yàn)榍度氲男螤畈荒艹^(guò)被嵌入形狀的邊界)。下面是代碼:
[C#]
public class CompanyWatermark : FarPoint.Win.Spread.DrawingSpace.RectangleShape
[Visual Basic .NET]
Public Class CompanyWatermark Inherits FarPoint.Win.Spread.DrawingSpace.RectangleShape
設(shè)置屬性
然后創(chuàng)建訪問(wèn)內(nèi)部形狀的屬性。創(chuàng)建復(fù)合形的好處之一就是可以隱藏許多嵌入圖形的不必要屬性。可以通過(guò)自定義屬性設(shè)置只公開相關(guān)的信息。第一個(gè)屬性是“CompanyColor”屬性。這是背景漸變的主要顏色,主要形狀會(huì)逐漸褪變成透明。它也是支持透明圖片的,以便不完全遮擋電子表格。其它屬性如決定漸變方向和漸變類型的Style,也可以一起進(jìn)行設(shè)置。在這個(gè)例子中使用的是GradientStyle.TopDown風(fēng)格。
接下來(lái)的屬性是一個(gè)叫CompanyLogo的圖像屬性。這個(gè)屬性是用來(lái)設(shè)置嵌入商標(biāo)logo將要顯示的圖形。這個(gè)示例將商標(biāo)形狀鎖定在了水印的左上角。可以輕松的通過(guò)屬性設(shè)置來(lái)對(duì)齊標(biāo)志。
嵌入文本形狀
最重要的水印部分是公司名稱。你可以使用嵌入的TextShape對(duì)象來(lái)代表顯示公司名稱。它將作為字符串顯示在水印形狀的CompanyName屬性中。有許多TextShape類的可定制功能都可以顯示,如字體或字體顏色,但是這個(gè)地方默認(rèn)不顯示。同樣,為了簡(jiǎn)單起見(jiàn),這個(gè)示例中的公司名稱是鎖定在水印形狀的中間。
最后,還有一個(gè)二級(jí)TextShape對(duì)象包含一些在水印中的其它文本信息。這些信息可能是一個(gè)公司的座右銘,口號(hào),網(wǎng)址甚至是像“CONFIDENTIAL”或“Copyright 2005”這樣的單詞。這個(gè)示例中將它們放到了水印形狀的左下角。許多其它屬性都可以在此嵌入形狀中進(jìn)行設(shè)置。這個(gè)例子只顯示了其中的一部分。這個(gè)形狀的文本顯示為“CompanyText”屬性。
結(jié)論
在上圖中,你可以看到CompanyWatermark類的全面實(shí)施。選擇"System.Drawing.Colors.SeaGreen"作為"CompanyColor",一個(gè)自定義位圖作為“CompanyLogo”、"SunRay Finance"作為 "CompanyName"、"CONFIDENTIAL"作為“CompanyText”。
因?yàn)镾pread可以滾動(dòng)視圖窗格,重載Spread的TopChange和LeftChange事件,移動(dòng)現(xiàn)有工作表的水印,以便它總是出現(xiàn)在頂部,并且和spreadsheet控件的寬度一致。還需重寫水印類的Top和Left屬性使嵌入對(duì)象總是在水印中可見(jiàn)。
TextShape類的其中一個(gè)功能是使用相關(guān)聯(lián)的字體使文本復(fù)合形狀的大小。在這個(gè)示例中已經(jīng)使用MeasureText方法進(jìn)行了改變。文本字符串通過(guò)使用控件的TextShape對(duì)象和當(dāng)前的字體進(jìn)行大小調(diào)整,然后設(shè)置相應(yīng)TextShape維度。這保證了形狀保持大小,與指定的字體和字體大小相一致。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)