控制模板中的故事板访问元素

时间:2012-10-28 15:18:38

标签: silverlight windows-phone-7

我有一个usercontrol,其中包含我希望设置动画的自定义样式按钮。

<UserControl>
<!-- omitted namespaces etc -->
<UserControl.Resources>
  <Style x:Key="myButtonStyle">
     <Setter Property="Template">
         <Setter.Value>
               <ControlTemplate TargetType="Button">
                   <Grid>                                                                     
                     <Ellipse x:Name="ellipse" Fill="Orange" />
                     <es:Arc x:Name="arc" EndAngle="360" Fill="Red" StartAngle="360"/>
                    </Grid>
                </ControlTemplate TargetType="Button">
           </Setter.Value>
     </Setter>
  </Style>
</UserControl.Resouces>

<Grid x:Name="LayoutRoot" />
  <Button Tap="Fire_Animation" x:Name="myButton" Style="{StaticResource myButtonStyle}" />
</Grid>
</UserControl>

点击按钮后,Fire_Animation方法会启动一个故事板,该故事板应该修改按钮模板中的“Arc”元素。

我见过这样的WPF示例:

// .. previous necessary method calls
StoryBoard.SetTargetName(_myAnimation, "arc");
_storyboard.Begin(myButton, myButton.Template);

但Windows Phone中没有这样的“开始”重载,因此我的故事板引发了一个例外,即无法找到'arc'元素。还有其他解决方法吗?

1 个答案:

答案 0 :(得分:1)

我建议当你点击按钮时,它会设置一个视觉状态。然后,您可以提供故事板作为按钮模板的一部分,在应用给定视觉状态时动画arc元素。