1.旋转转换:
以button控件为例,可以由RenderTransformOrigin属性来设置旋转中心位置,
由RotateTransform中的Angle属性来设置旋转角度。
举一例:
我们首先定义这样两个textbox,在其中可输入数值,然后将要需变换控件的属性值绑定即可。
由上面语法可实现绑定,实现图形的旋转操作。
2.位移转换:语法如下
其中xScroll和yScroll是两个scrollbar,分别表示位移的数值。
3.缩放转换:
一个缩放操作的确定需要四个值。分别确定缩放的中心位置和横纵方向缩放的倍数
语法参考如下:
其中xScroll,yScroll,xcenter,ycenter是四个scrollbar控件。
4.扭曲转换:
扭曲变换可以达到简单的立体效果,开销会比三维图形运行时的开销小。
扭曲操作使用两个参数:扭曲度数和扭曲中心位置。若Ax表示X轴方向的扭曲度数,Ay表示Y轴方向的扭曲度数,用(Cx,Cy)表示扭曲中心,那么图形上任何一点(x,y)转换后的坐标(Xt,Yt)为:
Xt=x+tan(Ax)(y-Cx);
Yt=y+tan(Ay)(x-Cy);
语法参考如下:
5.组合转换:上述4种转换可以重叠于一种控件上使用,参考语法如下:
上述代码中,即是把扭曲转换和缩放转换结合起来使用的样例。
以button控件为例,可以由RenderTransformOrigin属性来设置旋转中心位置,
由RotateTransform中的Angle属性来设置旋转角度。
举一例:
<TextBox Name ="rotateAngle" Margin ="2,2,10,2" Grid.Column="1" />
<TextBox Name ="rotateCenter" Margin ="2,2,10,2" Grid.Column="1" Grid.Row="1"/>
我们首先定义这样两个textbox,在其中可输入数值,然后将要需变换控件的属性值绑定即可。
<Button RenderTransformOrigin="{Binding ElementName=rotateCenter,Path=Text}" Canvas.Left="100" Canvas.Top="80" Width="100" Height="70">
<Button.RenderTransform>
<RotateTransform Angle="{Binding ElementName=rotateAngle,Path=Text}" />
</Button.RenderTransform>
</Button>
由上面语法可实现绑定,实现图形的旋转操作。
2.位移转换:语法如下
<Rectangle.RenderTransform>
<TranslateTransform X="{Binding ElementName=xScroll, Path=Value}"
Y="{Binding ElementName=yScroll, Path=Value}"/>
</Rectangle.RenderTransform>
其中xScroll和yScroll是两个scrollbar,分别表示位移的数值。
3.缩放转换:
一个缩放操作的确定需要四个值。分别确定缩放的中心位置和横纵方向缩放的倍数
语法参考如下:
<Rectangle.RenderTransform>
<ScaleTransform ScaleX="{Binding ElementName=xScroll, Path=Value}"
ScaleY="{Binding ElementName=yScroll, Path=Value}"
CenterX="{Binding ElementName=xcenter, Path=Value}"
CenterY="{Binding ElementName=ycenter, Path=Value}" />
</Rectangle.RenderTransform>
其中xScroll,yScroll,xcenter,ycenter是四个scrollbar控件。
4.扭曲转换:
扭曲变换可以达到简单的立体效果,开销会比三维图形运行时的开销小。
扭曲操作使用两个参数:扭曲度数和扭曲中心位置。若Ax表示X轴方向的扭曲度数,Ay表示Y轴方向的扭曲度数,用(Cx,Cy)表示扭曲中心,那么图形上任何一点(x,y)转换后的坐标(Xt,Yt)为:
Xt=x+tan(Ax)(y-Cx);
Yt=y+tan(Ay)(x-Cy);
语法参考如下:
<Rectangle.RenderTransform>
<SkewTransform AngleX ="{Binding ElementName=xScroll, Path=Value}"
AngleY ="{Binding ElementName=yScroll, Path=Value}"
CenterX="{Binding ElementName=xcenter, Path=Value}"
CenterY="{Binding ElementName=ycenter, Path=Value}" />
</Rectangle.RenderTransform>
5.组合转换:上述4种转换可以重叠于一种控件上使用,参考语法如下:
<TextBlock.RenderTransform>
<TransformGroup >
<SkewTransform AngleX ="-45" CenterX ="20"/>
<ScaleTransform ScaleY ="1.5" ScaleX="0.8" CenterX="20" CenterY ="20"/>
</TransformGroup>
</TextBlock.RenderTransform>
上述代码中,即是把扭曲转换和缩放转换结合起来使用的样例。