.NEt专家博客!
一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
上一篇 /
下一篇 2008-04-11 21:47:26
概述
Silverlight 2 Beta
1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#,
IronRuby, Ironpython,对JSON、Web
Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight
2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。
本文将综合前面几篇关于图形图像处理的技术,如画刷、半透明遮罩、Transform等,实现一个水中倒影效果的示例。
Step 1:素材准备
最终我们实现的效果图将会如下所示:ITPUB个人空间Bk4I_Mb
ITPUB个人空间.G\ R!A!\[!Jp+F
先准备一张图片,这里我使用了一张液晶显示器的图片:)ITPUB个人空间c`B%PP](x2i;o

:Q*s#H\P
\;l0ITPUB个人空间/s@Av!h$lS1y4x-b4A
Step 2:创建图片
首先我们创建一个图片,使用Image控件,并进行定位
<CanvasBackground="#000000">ITPUB个人空间3_ _Lm&J
<ImageCanvas.Top="20"Canvas.Left="182"Source="a.png">ITPUB个人空间,z(`7s\ks-C
</Image>
[j+YQV0</Canvas>
运行后应该看起来如下所示:
3V!{Y+P)i?(k7_9uaF0
6oCZ.^5saU&I0
Step 3:创建倒影
复制一张图片,使其位置与原始图片一样,然后我们使用ScaleTransform进行创建图片的倒影,这时图片已经翻转到了屏幕的外面,可以通过调节Canvas.Top进行调节,或者使用TranslateTransform:
<CanvasBackground="#000000">
9{0U2@o Ai0<ImageCanvas.Top="20"Canvas.Left="182"Source="a.png">
#Bl^THCkb0</Image>
,@
R3z!iA]N;y7C0<ImageCanvas.Top="20"Canvas.Left="182"Source="a.png"Opacity="0.4">ITPUB个人空间N@.[OnN
<Image.RenderTransform>ITPUB个人空间{\4P#C[1M{c2A
<TransformGroup>ITPUB个人空间.k3Ohi^~p
<ScaleTransform.ScaleY="-1"></ScaleTransform>ITPUB个人空间;p
_.DA7P%{.}C2z
<TranslateTransform.Y="320"></TranslateTransform>
%U!E1YC j8M%teR"Y0</TransformGroup>ITPUB个人空间#ndAGX#Pb }9A8z
</Image.RenderTransform>ITPUB个人空间Dne0QJ-Rx
</Image>