我正在尝试设置框宽度的动画,以便在左右方向上延伸。 当然它只是在正确的方向上延伸,我将如何在两者中延伸。大多数WPF代码都在C#中,所以我无法真正找到Google的答案。
Imports System.Windows.Media.Animation
Class MainWindow
Private Sub EnlargeBtn_Click(sender As Object, e As RoutedEventArgs) Handles EnlargeBtn.Click
Dim NewWidth = 300
Dim widthAnimation As New DoubleAnimation(NewWidth, TimeSpan.FromMilliseconds(1000))
Box.BeginAnimation(WidthProperty, widthAnimation)
End Sub
End Class
答案 0 :(得分:2)
您需要为左侧位置和宽度设置动画。
如果您可以更改左侧位置,则需要将宽度更改为您更改左侧属性的两倍,以使框在两个方向均匀增长。
如果您无法更改Rectangle
的左侧或X属性(因为它似乎没有您可以访问的属性 - MSDN),那么唯一的解决方案可能是将它放在另一个容器(网格或边框)中并将其HorizontalAlignment
设置为Center
。
答案 1 :(得分:0)
想出来,必须将HorizontalAlignment
设置为Center
并将左右边距移动一半宽度
Imports System.Windows.Media.Animation
Class MainWindow
Private Sub EnlargeBtn_Click(sender As Object, e As RoutedEventArgs) Handles EnlargeBtn.Click
Dim NewWidth = 300
Dim widthAnimation As New DoubleAnimation(NewWidth, TimeSpan.FromSeconds(1))
Dim marginAnimation As New ThicknessAnimation(New Thickness(Box.Margin.Left - NewWidth / 2, Box.Margin.Top, Box.Margin.Right - NewWidth / 2, 0), TimeSpan.FromSeconds(1))
Box.BeginAnimation(WidthProperty, widthAnimation)
Box.BeginAnimation(MarginProperty, marginAnimation)
End Sub
End Class