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