8,737
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 控件属性渐变动画
/// </summary>
/// <param name="from">初始值</param>
/// <param name="to">目标值</param>
/// <param name="value">对象</param>
/// <param name="property">属性</param>
/// <param name="mil">动画持续时长(毫秒)</param>
public static Storyboard Animation(double from, double to, DependencyObject value, string property, int mil)
{
Storyboard sb = new Storyboard();
DoubleAnimation dop = new DoubleAnimation(from, to, new TimeSpan(0, 0, 0, 0, mil));
Storyboard.SetTarget(dop, value);
Storyboard.SetTargetProperty(dop, new PropertyPath(property, new object[] { }));
sb.Children.Add(dop);
return sb;
}
调用
Storyboard sb = Animation(1, 0, bankWindow, "Opacity", 200);
sb.Completed += sb_Completed_Close;//动画完成后的事件,可选
sb.Begin();
事件
void sb_Completed_Close(object sender, System.EventArgs e)
{
bankWindow.Close();
bankWindow = null;
}
public static Storyboard madamingDoubleAnimationToWidthAndOpacity(UIElement controlToAnimation, double to_width, double o)
{
Storyboard sb = new Storyboard();
DoubleAnimation da_width = new DoubleAnimation();
DoubleAnimation da_opacity = new DoubleAnimation();
sb.Duration = new Duration(new TimeSpan(0, 0, 0, 1, 0));
Storyboard.SetTarget(sb, controlToAnimation);
Storyboard.SetTargetProperty(da_width, new PropertyPath("(UIElement.Width)"));
da_width.To = to_width;
da_width.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 600));
sb.Children.Add(da_width);
//Storyboard.SetTarget(sb, controlToAnimation);
Storyboard.SetTargetProperty(da_opacity, new PropertyPath("(UIElement.Opacity)"));
da_opacity.To = o;
sb.Children.Add(da_opacity);
return sb;
}
madamingDoubleAnimationToWidthAndOpacity(grid_left, 4, .6).Begin();