惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
腾讯CDC
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
L
LangChain Blog
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
IT之家
IT之家
A
About on SuperTechFans
H
Help Net Security

博客园 - Amanda2007

用户中心 - 博客园 用户中心 - 博客园 Silverlight不支持GIF或BMP文件格式 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 用户中心 - 博客园 为什么silverlight的PasswordBox控件的password属性不可以绑定?该如何实现绑定? 用户中心 - 博客园 如何获取silverlight 应用程序的版本号。 如何自定义datagrid控件的某一行。 鼠标进入离开DataGrid的行的操作。 背景图片的自适应 在网页上设置容器的高度的百分比。 为canvas添加背景图片
RotateTransform的CenterX和CenterY和元素的RenderTransformO...
Amanda2007 · 2009-04-23 · via 博客园 - Amanda2007

我们可以使用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值要加在一起来计算出最终的原点。