Silverlight沒有位圖濾鏡,同樣的問題存在于WPF程序。有一些可以用png來模擬,但是有一些可以使用xaml。下面的一個(gè)例子展示一個(gè)可行的(并不一定是最好的)陰影濾鏡,依靠Expression design將矢量內(nèi)容輸出。
第一步,打開Expression design并且創(chuàng)建一個(gè)圖形,并且復(fù)制這個(gè)對象。做成一個(gè)帶有圓角的矩形。
下一步,隱藏上面的矩形,并將下面的矩形的筆觸效果改成位圖噴槍。你可以改動(dòng)筆刷的大小,得到最適合的外觀效果。通常設(shè)置12-20px之間。筆刷的顏色設(shè)置(注意區(qū)分于填充)可以改變筆刷顏色。當(dāng)然,你可以很自由的玩轉(zhuǎn)各種其它的筆刷,做一些個(gè)性的效果。
得到的形狀效果如下:
注意,我在稍后的屏幕截圖里,將筆刷的寬度由13.33調(diào)整到了20。
現(xiàn)在,將隱藏的UI元素顯現(xiàn),并用你習(xí)慣的方式查看整體的效果。我通常調(diào)整到實(shí)際的尺寸(100%)。
如果效果不錯(cuò),就可以輸出XAML到Silverlight了.這里的關(guān)鍵是確保你的筆刷筆觸是向量的。 接下來還可以設(shè)置一些細(xì)節(jié),圖像質(zhì)量與XAML大小的權(quán)衡。在這個(gè)例子里,你可以設(shè)置比較低的質(zhì)量。
最后的XAML會(huì)包含相當(dāng)數(shù)量的路徑(Path)并帶有透明度變化,模擬一個(gè)邊緣漸變的陰影。
還是其它的很多方法你可以嘗試,同樣可以達(dá)成需要的效果。
例子的所有資源下載(.design+sl Project)。
PS:發(fā)現(xiàn)Expression Design的一個(gè)優(yōu)點(diǎn),如果正在使用中的Design,因?yàn)橄到y(tǒng)故障導(dǎo)致重啟、假死等,再次打開Design會(huì)恢復(fù)到原來的工作狀態(tài),文件不會(huì)丟失。
還有一個(gè)Bug,在第二步改變矩形筆刷后,外觀從圓角變成了直角。如下圖:
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2827840-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2008/5328.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|