滑入并滑出动画
我正在尝试使用c#和WPF制作幻灯片进出动画。
到目前为止,我已设法编写下一行代码:
XAML:
C#:
private void Button_Click(object sender, RoutedEventArgs e) { border.Height = grid.ActualHeight; if (!isOpen) { isOpen = true; DoubleAnimation db = new DoubleAnimation(); db.From = 0; db.To = grid.ActualHeight; db.Duration = TimeSpan.FromSeconds(0.5); border.BeginAnimation(Grid.HeightProperty, db); } else { isOpen = false; DoubleAnimation db = new DoubleAnimation(); db.From = grid.ActualHeight; db.To = 0; db.Duration = TimeSpan.FromSeconds(0.5); border.BeginAnimation(Grid.HeightProperty, db); } }
好事是动画被执行。 坏的是这个动画有错误的效果,我的意思是动画从顶部到中间,从底部到中间(如果它正在缩小)……
如何制作(或修改我的实际代码)幻灯片效果(从上到下,从下到上)?
它必须是c#代码。
您正在尝试翻译 UI控件,因此请使用TranslateTransform
(如果您在canvas上, Canvas.Top
是可能的,但效率很低)。
修改XAML以将渲染变换集包含到TranslateTransform
对象:
并为变换的Y
属性设置动画:
DoubleAnimation db = new DoubleAnimation(); db.From = 0; db.To = grid.ActualHeight; db.Duration = TimeSpan.FromSeconds(0.5); borderTransform.BeginAnimation(TranslateTransform.YProperty, db);
只是你知道,使用Storyboard
对象这样做更加清晰(另外你可以在XAML中设置它!)