使用ScaleTransform时,我缩放的元素会调整大小:
<BeginStoryboard>
<Storyboard TargetName="ShiftTrain3" TargetProperty="ScaleX">
<DoubleAnimation To="300" Duration="0:0:3"/>
</Storyboard>
</BeginStoryboard>
然而,动画是从右到左完成的。我想让它从右到左调整大小。哪个属性会影响这种行为?是关于元素对齐吗?
图像位于画布面板内。
<Image Height="103" HorizontalAlignment="Right" Margin="312,1,0,0" Name="myImage" Source="img/myImage.jpg" Stretch="Fill" VerticalAlignment="Top" Width="400" Canvas.Left="90" Canvas.Top="-1">
答案 0 :(得分:1)
这确实取决于控件的对齐方式。动画本身没有允许您调整此行为的属性。
修改强>
您的编辑声明图像位于Canvas中。在这种情况下,图像的位置设置在其左上角,并且相对于画布的左上角。它由Canvas.Top和Canvas.Left属性或图像的边距或两者的组合设置。
在任何情况下,这种定位方法都意味着WPF会忽略Alignment属性。
因此,如果您希望图像从右向左或从左向右调整大小,则必须通过将其置于其他类型的控件(如Grid或StackPanel或DockPanel)中来相对定位。
唯一的另一个选择是根据比例改变图像的相对X和Y坐标(或边距,或两者),但这绝非易事。
编辑2:错误错误!
我一定是碰到了我的脑袋,我在这里胡说八道。您可以在ScaleTransform上使用一个属性:
http://msdn.microsoft.com/fr-fr/library/system.windows.media.scaletransform.centerx.aspx
必须累----
答案 1 :(得分:0)
您是否尝试设置控件的RenderTransformOrigin? 默认值为(0,0),尝试将其更改为(1,0)