2012-10-28 57 views
1

我有一個用戶控件,其中包含一個我想動畫的自定義樣式按鈕。控制模板中的故事板訪問元素

<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中沒有這樣的「開始」過載,因此我的故事板拋出一個異常,它無法找到「圓弧」元件。有沒有其他解決方法?

回答

1

我會建議,當你點擊按鈕,它設置一個視覺狀態。然後,您可以提供故事板作爲按鈕模板的一部分,以便在應用給定的視覺狀態時爲元素設置動畫效果。