2011-06-04 106 views
0

E 我在下面的鏈接中收到了很好的答案,但我需要對此進行編碼,因爲我沒有設置橢圓數量的值。我很難將其轉換爲C#,並希望得到一些幫助。答案是Start storyboard on a different control on a trigger in WPFwpf將一些XAML轉換爲C#

代碼:

<Ellipse Width="25" Height="25" Name="ellipse2"> 
    <Ellipse.Style> 
     <Style TargetType="{x:Type Ellipse}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Opacity, ElementName=ellipse1}" Value="0.5"> 
        <DataTrigger.EnterActions> 
         <BeginStoryboard> 
          <!-- Storyboard for ellipse 2 here --> 
         </BeginStoryboard> 
        </DataTrigger.EnterActions> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Ellipse.Style> 
</Ellipse> 
+0

你到底要得到的效果是什麼?一系列相互面對的橢圓?或者成對的橢圓,第二個總是會對第一個做出反應?或者完全不同的東西? – svick 2011-06-04 18:51:52

+0

第一個將被手動啓動,第二個將從基於第一個橢圓的點開始,第三個將從基於第二個等的點開始,除此之外還有更多,但這足以獲得我去。 – Terco 2011-06-04 22:48:43

回答

3

事情是這樣的:

var style = new Style(typeof(Ellipse)); 
var trigger = new DataTrigger(); 
trigger.Binding = new Binding("Opacity") { ElementName = "ellipse1" }; 
trigger.Value = 0.5; 
Storyboard sb = new Storyboard(); 

//Add animation to sb, note the attached storyboard properties which are set with static methods: 
//Storyboard.SetTarget(...); 
//Storyboard.SetTargetProperty(...); 
//Storyboard.SetTargetName(...); 

trigger.EnterActions.Add(new BeginStoryboard() { Storyboard = sb }); 
style.Triggers.Add(trigger);