我们正在使用具有某些形状的第三方,当其中一个无效时,我想让它发光。目前我使用它的唯一方法是使用DropShadowEffect
。
myShape.Effect = new DropShadowEffect { BlurRadius = 120, Color = Color.FromArgb(220, 255, 0, 0), Direction = 0, ShadowDepth = 0 };
不幸的是,这不是动画。我知道我们可以使用VisualState做一些动画,但我看不到将它与UIElement.Effect一起使用的方法。
如果我无法控制绘制形状的画布,那么如何在Silverlight中制作这种发光效果,既不是形状本身,因为它是第三方?
答案 0 :(得分:0)
我现在可以拥有动画,但它的工作效率为90%
我像以前一样设置效果:
myShape.Effect = new DropShadowEffect {BlurRadius = 500,Color = Color.FromArgb(255,255,0,0),Direction = 0,ShadowDepth = 10,Opacity = 100};
然后我创建一个故事板并添加它:
var shadowExpand = new DoubleAnimation();
shadowExpand.From = 1;
shadowExpand.To = 0;
shadowExpand.Duration = new Duration(TimeSpan.FromMilliseconds(2000));
shadowExpand.RepeatBehavior = RepeatBehavior.Forever;
shadowExpand.AutoReverse = true;
Storyboard.SetTarget(shadowExpand, addFlowShape);
Storyboard.SetTargetProperty(shadowExpand, new PropertyPath("(UIElement.Effect).(DropShadowEffect.Opacity)"));
var stb = new Storyboard();
stb.Children.Add(shadowExpand);
<击> 问题是,我认为它在1999ms没有做任何事情,然后从100到0快速轻弹,而不是逐渐进行。 击>
<击> 任何身体都可以让它更顺畅吗?
击>
我不得不把1而不是100用于不透明度。谢谢大家。