wpf中关于图形转换的几个基本用法

1.旋转转换:
以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>


上述代码中,即是把扭曲转换和缩放转换结合起来使用的样例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值