滑入并滑出动画

我正在尝试使用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中设置它!)