背景: 我加載的圖象分成一堆疊面板(稱爲MainStack)水平顯示(爲了討論起見,10個圖像)僅在4倍視圖的圖像空間。當我從列表中加載圖像時,我將每個圖像的寬度設置爲300,以使它們都處於相同大小的框中。WPF保證金厚度
我想將圖像從向右移動使用堆疊面板的保證金(左)財產離開了。我希望左邊滾動的外觀與每幅圖像的寬度完全相同(以4秒的延遲循環),直到最後一幅圖像出現爲止。這裏是我的代碼爲保證金動畫:
Dim result As New Storyboard
Dim animation As New ThicknessAnimation
animation.From = MainStack.Margin
animation.EasingFunction = New PowerEase() With {.EasingMode = EasingMode.EaseInOut, .Power = 3}
animation.To = New Thickness(-300, 0, 0, 0)
animation.Duration = New Duration(TimeSpan.FromSeconds(1.5))
Storyboard.SetTarget(animation, MainStack)
Storyboard.SetTargetProperty(animation, New PropertyPath("Margin"))
result.Children.Add(animation)
result.Begin()
奇怪的事情正在發生。堆疊面板正在向左移動,但只有圖像寬度的一半左右。
這是怎麼回事?!?
/*編輯*/ 按H.B.建議,我試圖實現一個TranslateTransform,但沒有太大的成功。
任何人都可以看到這個代碼的任何問題?
Dim translatePosition = New Point(300, 0)
RenderTransform = New TranslateTransform()
Dim d As New Duration(New TimeSpan(0, 0, 0, 1, 30))
Dim x As New DoubleAnimation(translatePosition.X, d)
Storyboard.SetTarget(x, MainStack)
Storyboard.SetTargetProperty(x, New PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"))
Dim sb As New Storyboard()
sb.Children.Add(x)
sb.Begin()
似乎沒有什麼事情發生。 本
爲什麼不應用TranslateTransform併爲其生成動畫? –
嗨H.B.感謝評論,我正在研究它。你能夠建議我可以使用的任何代碼嗎?我正在閱讀TranslateTransform與Storyboard沒有很好地配合。 – Ben
這是我的新聞,誰說的? –