执行动画后,无法在ScatterViewItem上设置Opacity属性

时间:2013-07-04 23:07:48

标签: c# wpf animation properties

我目前正在通过淡出来删除用户界面中的元素。这可以按预期工作。

public void HideShape()
{
    if (this.TangibleShape != null)
    {
        DoubleAnimation animation = new DoubleAnimation();
        animation.From = 1.0;
        animation.To = 0.0;
        animation.AutoReverse = false;
        animation.Duration = TimeSpan.FromSeconds(1.5);

        Storyboard s = new Storyboard();
        s.Children.Add(animation);

        Storyboard.SetTarget(animation, this.TangibleShape.Shape);
        Storyboard.SetTargetProperty(animation, new PropertyPath(ScatterViewItem.OpacityProperty));

        s.Begin(this.TangibleShape.Shape);
        s.Completed += delegate(object sender, EventArgs e)
        {
            // call UIElementManager to finally hide the element
            UIElementManager.GetInstance().Hide(this.TangibleShape);
       };
    }
}

问题是我想在某些情况下再次将不透明度设置为1,但TangibleShape.Shape(它是ScatterViewItem)会忽略该命令。如果我再次淡出,元素变得可见并立即开始淡出。我不知道如何解决这个问题。有人对我有暗示吗?

1 个答案:

答案 0 :(得分:1)

public void HideShape()
{
    if (this.TangibleShape != null)
    {
        DoubleAnimation animation = new DoubleAnimation();
        animation.From = 1.0;
        animation.To = 0.0;
        animation.AutoReverse = false;
        animation.Duration = TimeSpan.FromSeconds(1.5);
        animation.FillBehavior = FillBehavior.Stop; // needed

        Storyboard s = new Storyboard();
        s.Children.Add(animation);

        Storyboard.SetTarget(animation, this.TangibleShape.Shape);
        Storyboard.SetTargetProperty(animation, new PropertyPath(ScatterViewItem.OpacityProperty));

        s.Completed += delegate(object sender, EventArgs e)
        {
            // call UIElementManager to finally hide the element
            UIElementManager.GetInstance().Hide(this.TangibleShape);
            this.TangibleShape.Shape.Opacity = 0.0; // otherwise Opacity will be reset to 1
        };
        s.Begin(this.TangibleShape.Shape); // moved to the end
    }
}

在此处找到答案:http://social.msdn.microsoft.com/Forums/en-US/7d33ca82-2c02-4004-8b37-47edf4cca34e/scatterviewitem-and-