• <menu id="w2i4a"></menu>
  • logo Spread Studio for .NET使用教程
    文檔首頁(yè)>>Spread Studio for .NET使用教程>>Spread Studio for .NET使用教程:創(chuàng)建自定義復(fù)合形

    Spread Studio for .NET使用教程:創(chuàng)建自定義復(fù)合形


    shape classes形狀類(lèi)的一個(gè)的固有功能就是能夠?qū)⑵渌螤顚?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

    下面就是具體的示例:

    Spread Studio for .NET使用教程:創(chuàng)建自定義復(fù)合形

    要?jiǎng)?chuàng)建這個(gè)自定義復(fù)合形,需要先定義一個(gè)叫做CompanyWatermark的自定義形狀類(lèi),并設(shè)置屬性來(lái)自定義外形。這個(gè)自定義形狀融合了多種元素:一個(gè)從指定顏色到透明的漸變褪色背景;嵌入的形狀中包含了一個(gè)公司標(biāo)志;一個(gè)單獨(dú)的嵌入式文本形狀用來(lái)拼寫(xiě)成公司名稱(chēng);一個(gè)文本形狀提供額外的信息,比如網(wǎng)址、公司的座右銘或安全等級(jí)。

    派生自定義類(lèi)

    首先從表針的RectangleShape類(lèi)中開(kāi)始派生類(lèi)。這將創(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è)置只公開(kāi)相關(guān)的信息。第一個(gè)屬性是“CompanyColor”屬性。這是背景漸變的主要顏色,主要形狀會(huì)逐漸褪變成透明。它也是支持透明圖片的,以便不完全遮擋電子表格。其它屬性如決定漸變方向和漸變類(lèi)型的Style,也可以一起進(jìn)行設(shè)置。在這個(gè)例子中使用的是GradientStyle.TopDown風(fēng)格。

    接下來(lái)的屬性是一個(gè)叫CompanyLogo的圖像屬性。這個(gè)屬性是用來(lái)設(shè)置嵌入商標(biāo)logo將要顯示的圖形。這個(gè)示例將商標(biāo)形狀鎖定在了水印的左上角??梢暂p松的通過(guò)屬性設(shè)置來(lái)對(duì)齊標(biāo)志。

    嵌入文本形狀

    最重要的水印部分是公司名稱(chēng)。你可以使用嵌入的TextShape對(duì)象來(lái)代表顯示公司名稱(chēng)。它將作為字符串顯示在水印形狀的CompanyName屬性中。有許多TextShape類(lèi)的可定制功能都可以顯示,如字體或字體顏色,但是這個(gè)地方默認(rèn)不顯示。同樣,為了簡(jiǎn)單起見(jiàn),這個(gè)示例中的公司名稱(chēng)是鎖定在水印形狀的中間。

    最后,還有一個(gè)二級(jí)TextShape對(duì)象包含一些在水印中的其它文本信息。這些信息可能是一個(gè)公司的座右銘,口號(hào),網(wǎng)址甚至是像“CONFIDENTIAL”或“Copyright 2005”這樣的單詞。這個(gè)示例中將它們放到了水印形狀的左下角。許多其它屬性都可以在此嵌入形狀中進(jìn)行設(shè)置。這個(gè)例子只顯示了其中的一部分。這個(gè)形狀的文本顯示為“CompanyText”屬性。

    結(jié)論

    在上圖中,你可以看到CompanyWatermark類(lèi)的全面實(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控件的寬度一致。還需重寫(xiě)水印類(lèi)的Top和Left屬性使嵌入對(duì)象總是在水印中可見(jiàn)。

    TextShape類(lèi)的其中一個(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維度。這保證了形狀保持大小,與指定的字體和字體大小相一致。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();