我試圖得到這個工作,根據我收到的回答[使用WPF將一些XAML轉換爲C#] [1],但我錯過了一些東西。DataTrigger代碼
我粘貼了下面我的代碼樣本。
// uGrid = UniformGrid
uGrid.Columns=2;
// test - setup first ellipse
Ellipse ellipse1 = new Ellipse() { Width=25, Height=25, Fill=Brushes.DodgerBlue, Margin= new Thickness(3), Opacity=0 };
uGrid.Children.Add(ellipse1);
var fadeEllipse1 = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.FromSeconds(this.secondsToFade), FillBehavior=FillBehavior.Stop };
Storyboard.SetTarget(fadeEllipse1, ellipse1);
Storyboard.SetTargetProperty(fadeEllipse1, new PropertyPath(Ellipse.OpacityProperty));
Storyboard storyBoard = new Storyboard();
storyBoard.Children.Add(fadeEllipse1);
storyBoard.RepeatBehavior=RepeatBehavior.Forever;
// test - setup 2nd ellipse using example below
Ellipse ellipse2 = new Ellipse() { Width=25, Height=25, Fill=Brushes.DodgerBlue, Margin= new Thickness(3), Opacity=0 };
uGrid.Children.Add(ellipse2);
var style = new Style(typeof(Ellipse));
var trigger = new DataTrigger();
trigger.Binding = new Binding("Opacity") { ElementName = "ellipse1" };
trigger.Value = 1;
Storyboard sb = new Storyboard();
var fadeEllipse2 = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.FromSeconds(this.secondsToFade), FillBehavior=FillBehavior.Stop };
Storyboard.SetTarget(fadeEllipse2, ellipse2);
Storyboard.SetTargetProperty(fadeEllipse2, new PropertyPath(Ellipse.OpacityProperty));
Storyboard.SetTargetName(fadeEllipse2, ellipse2.Name);
sb.Children.Add(fadeEllipse2);
sb.RepeatBehavior=RepeatBehavior.Forever;
trigger.EnterActions.Add(new BeginStoryboard() { Storyboard = sb });
style.Triggers.Add(trigger);
storyBoard.Begin();
有什麼問題嗎? – svick 2011-06-05 14:02:27
對不起。附加到ellipse2的第二個故事板從不觸發,當ellipse1不透明度達到1時,我嘗試了trigger.value的不同值 - .7,.5 - 我設置了一些錯誤並且沒有觸發。 – Terco 2011-06-05 17:08:56
我看到我得到了兩個大拇指,如果有人讓我知道我做了什麼會更有建設性,所以我知道在未來應該避免什麼。 – Terco 2011-06-05 17:10:40