执行动画后,无法在ScatterViewItem上设置“不透明度”属性

本文关键字:不透明度 设置 ScatterViewItem 属性 动画 执行 | 更新日期: 2023-09-27 18:21:18

我当前正在通过淡出从用户界面中删除一个元素。这是意料之中的事。

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)忽略了该命令。如果我再次淡出,元素将变为可见,并立即开始淡出。我不知道如何解决这个问题。有人给我暗示吗?

执行动画后,无法在ScatterViewItem上设置“不透明度”属性

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-