2011-06-04 107 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);