2011-12-07 62 views
0

我們正在使用具有某種形狀的第三方,當其中一個無效時,我想使其發光。目前我唯一能做到的方法是使用DropShadowEffect爲UIElement.Effect設置動態效果

myShape.Effect = new DropShadowEffect { BlurRadius = 120, Color = Color.FromArgb(220, 255, 0, 0), Direction = 0, ShadowDepth = 0 }; 

不幸的是,這不是動畫。我知道我們可以用VisualState做一些動畫,但是我看不到用它與UIElement.Effect一起使用的方法。

如何在Silverlight中控制繪製形狀的畫布時,如何在Silverlight中實現這種發光效果?既不是形狀本身,又不是第三方?

回答

0

我現在可以有動畫,但它工作在90%

我喜歡設置之前的效果:

myShape.Effect =新DropShadowEffect {BlurRadius = 500,顏色= 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不透明。解決了謝謝大家。