【发布时间】:2015-11-13 20:03:42
【问题描述】:
我想知道如何在不更改其位置的情况下更改元素的RenderTransformOrigin。我注意到更改RenderTransformOrigin 会影响元素位置。
如何计算更改RenderTransformOrigin前后元素位置之间的X和Y值?
XAML
<Button
Content="Button"
Height="100"
Width="100"
RenderTransformOrigin="0, 0">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button
【问题讨论】:
-
RenderTransformOrigin="0.5,0.5"你确定这改变了位置吗? -
举个例子:我有一个按钮(Height = 100, Width = 100):当前的 RenderTransformOrigin 设置为 (0, 0)。现在我正在应用角度为 90 的 RotationTransform。由于旋转,按钮的视觉位置发生了变化(X -100,Y 0)。在下一步中,我将 RenderTransformOrigin 更改为 (0.5, 0.5),整个按钮移动到其旧位置 (X 0, Y 0)。而正是这种转变是我不想要的,因为旧的转换丢失了。
标签: c# wpf matrix transform rendertransform