2 <Rectangle.Rendertransform>
3 <Rotatetransform Angle="45"/>
4 </Rectangle.Rendertransform>
5 </Rectangle> 如果要为这样写好的XAML代码添加叠加变形时,我们不得不写更多的变形对象和添加一个transformGroup把这些变形对象“包”起来,变为以下的样子。 XAML: 1 <Rectangle Height="100" WIDth="80" Fill="Red">
2 <Rectangle.Rendertransform>
3 <transformGroup>
4 <Scaletransform ScaleX="0.8" ScaleY="0.8" />
5 <Skewtransform AngleX="30" />
6 <Rotatetransform Angle="45" />
7 </transformGroup>
8 </Rectangle.Rendertransform>
9 </Rectangle> 从上面的XAML代码看来,在我们使用这种方式手写编码来叠加变形效果在代码上面稍显“罗嗦”,在Silverlight4.0中加入了新的变形对象Compositetransform,我们可以称为“复合变形对象”,通过Compositetransform我们可以简以上的XAML代码大大简化,等效XAML如下。 XAML: 1 <Rectangle Height="100" WIDth="80" Fill="Red">
2 <Rectangle.Rendertransform>
3 <Compositetransform SkewX="30" Rotation="45" ScaleX="0.8" ScaleY="0.8" />
4 </Rectangle.Rendertransform>
5 </Rectangle> 上面使用复合变形实现的效果与transformGroup是完全一致的,但代码上简洁了许多,接下来我们使用复合变形对象实现一个“简洁版”的倒影效果。 XAML: 1 <GrID Background="Black">
2 <StackPanel WIDth="500" Height="460" margin="5"
3 OrIEntation="Vertical">
4 <TextBlock FontSize="16" WIDth="430" Height="20" Foreground="White">
5 Compositetransform(组合变形对象)简化实现倒影效果
6 </TextBlock>
7 <Image WIDth="400" Height="240" Stretch="Fill"
8 Source="Images/avatar_8.jpg"/>
9 <Image x:name="imgShadow" WIDth="400" Height="200" Stretch="Fill"
10 Source="Images/avatar_8.jpg">
11 <Image.OpacityMask>
12 <linearGradIEntBrush EndPoint="0.5,1"
13 StartPoint="0.5,0">
14 <GradIEntStop Offset="0"/>
15 <GradIEntStop color="White" Offset="1"/>
16 </linearGradIEntBrush>
17 </Image.OpacityMask>
18 <Image.Rendertransform>
19 <!--使用Compositetransform(组合变形对象)实现倒影-->
20 <Compositetransform TranslateX="35" TranslateY="200"
21 SkewX="10"
22 ScaleY="-1" />
23 </Image.Rendertransform>
24 </Image>
25 </StackPanel>
26 </GrID> 运行结果如图所示。 等效的C#代码如下: 1 //等效C#后台代码实现
2 voID CompositetransformSample_Loaded(object sender,RoutedEventArgs e)
3 {
4 //创建组合变形对象
5 Compositetransform ct = new Compositetransform()
6 {
7 TranslateX = 35,
8 TranslateY = 200,
9 SkewX = 10,
10 ScaleY = -1
11 };
12 //应用组合变形
13 imgShadow.Rendertransform = ct;
14 } 使用复合变形代码虽然简洁,但它的CenterX和CenterY是相对固定的,你不能够根据不同的变形属性改变它的变形中心点,尤其是在动画过程时,否则你可能还需要通过transformGroup来实现变形叠加效果或动画,不过Compositetransform还是适用于大多数场合的变形。 希望对大家有用! 总结
以上是内存溢出为你收集整理的风云的银光志Silverlight4.0教程之使用CompositeTransform复合变形特效实现倒影全部内容,希望文章能够帮你解决风云的银光志Silverlight4.0教程之使用CompositeTransform复合变形特效实现倒影所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)