我像这样调整停靠面板的大小:
Private WithEvents PanelAnimation As New DoubleAnimation
Private WithEvents PanelSB As New Storyboard
With PanelAnimation
.From = WpfDockPanel.ActualHeight
.To = s
.Duration = New Duration(TimeSpan.FromSeconds(0.5))
.AccelerationRatio = 0.5
.DecelerationRatio = 0.5
End With
PanelSB.Children.Add(PanelAnimation)
Storyboard.SetTarget(PanelAnimation, WpfDockPanel)
Storyboard.SetTargetProperty(PanelAnimation, New PropertyPath(DockPanel.HeightProperty))
PanelSB.Begin(AviMainWindow)
..工作正常。然后,我想手动设置大小,但它不会改变,如果我停止代码并输入不同的大小,大小不会改变,就好像它只是readonly。
但如果我改变一次大小,而不是通过动画,只需设置大小,我可以再次改变它没问题。为什么我不能在动画制作后手动设置高度?
由于
答案 0 :(得分:2)
这是因为默认情况下动画的FillBehavior设置为HoldEnd
。您可以将其设置为Stop
。
然而,在开始动画之前,您还必须手动将动画目标的Height
属性设置为所需的最终值。否则它将翻转回动画开始前的值。
With PanelAnimation
.FillBehavior = FillBehavior.Stop
...
...
WpfDockPanel.Height = s
PanelSB.Begin(AviMainWindow)
答案 1 :(得分:0)
可能您需要删除动画应用的值。像
这样的东西WpfDockPanel.BeginAnimation(DockPanel.HeightProperty, null)
应该这样做。