RotateTransform的CenterX和CenterY和元素的RenderTransformOrigin属性与

我们可以使用RotateTransform的CenterX和CenterY属性来定义元素的旋转中心,如下:

< Button.RenderTransform >
      
< RotateTransform  CenterX ="20"  CenterY ="20" ></ RotateTransform >
</ Button.RenderTransform >

但是我们仍然可已使用元素的RenderTransformOrigin属性来表示变换中心。如下:

 

< Button  x:Name ="btnGenerate"  Width ="100"  Height ="35"  Content ="Generate XML"  Click ="btnGenerate_Click"  RenderTransformOrigin ="0.5,0.5" >

 

那么,我们就会问了,既然元素已经有了一个RenderTransformOrigin属性了,为什么象RotateTransform这样的变换还有CenterX和CenterY呢?

首先,CenterX和CenterY属性确实与RenderTransformOrigin属性重复了,但是CenterX和CenterY使用像素来指定的,而不像RenderTransformOrigin使用的是规范化的值。因此,一个width为20的元素的右上角是有CenterX=0和CenterY=20来指定的。而不是(0,1).并且,当多个RenderTransform应用到同一个元素上时,RenderTransformOrigin会应用到所有这些RenderTransform上,然而独立变换的CenterX和CenterY属性更适合做精细的控制。

也就是说,RenderTransformOrigin通常比CenterX和CenterY更加有用。对于围绕元素中心转换一个元素的常用情况,相对的RenderTransformOrigin值(0.5,0.5)很容易在xaml中指定,然而用CenterX和CenterY实现同样的功能则需要对元素(如TextBlock)使用javascript,动态改变大小。

注意,能在使用某个元素的RenderTransformOrigin的同时使用它的变换的CenterX和CenterY。在这种情况下,两个X值个两个Y值要加在一起来计算出最终的原点。

转载于:https://www.cnblogs.com/Amanda2007/archive/2009/04/23/1441917.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值