在WPF中更改缩小方向

时间:2011-03-23 14:51:28

标签: c# .net wpf

使用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">

2 个答案:

答案 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)