2011-03-23 38 views
1

縮小方向當使用ScaleTransform,我縮放元素大小調整:變化WPF

<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

我想你的意思是「從左到右」而不是你的「從右到左」 – David 2011-03-23 15:41:36

回答

1

這確實取決於控件的排列方式。動畫本身沒有屬性可以讓你調整這種行爲。

編輯:

您的編輯指出,圖像是Canvas中。在這種情況下,圖像的位置設置在其左上角,並與畫布的左上角相對。它可以由Canvas.Top和Canvas.Left屬性設置,也可以由圖像邊距或兩者的組合設置。

無論如何,這種定位方法意味着對齊屬性被WPF忽略。

所以如果你想讓你的圖像從右到左或從左到右調整大小,你必須把它放在其他類型的控件裏面,比如Grid或StackPanel或DockPanel。

唯一的其他選擇是根據比例尺改變圖像的相對X和Y座標(或邊距或兩者),但這絕非易事。

edit2:錯誤錯誤!

我一定會打我的腦袋或什麼的,我在這裏提到廢話。還有就是你可以在你的ScaleTransform使用屬性:

http://msdn.microsoft.com/fr-fr/library/system.windows.media.scaletransform.centerx.aspx

一定累了吧-_-

+0

David:當將Horizo​​ntalAlignment設置爲Right時,行爲不會改變 – 2011-03-23 15:41:18

+0

你能給更多的xaml嗎?問題可能出在你設置對齊屬性 – David 2011-03-23 15:42:25

+0

@David:當然,我將XAML添加到了我原來的帖子中。 – 2011-03-23 15:49:17

0

你嘗試設置控件的RenderTransformOrigin? (0,0)嘗試將它改爲(1,0)