2013-10-06 105 views
1

基本上,我該如何使用按鈕激活簡單的故事板動畫,而不是自動播放?我正在嘗試普通按鈕,切換按鈕和切換開關,但沒有任何工作。激活按鈕上的XAML Storyboard點擊(Windows 8應用程序)

我打算在單擊按鈕時向右移動門的圖像,並在再次單擊時向左移動。它應該在點擊時無限期地重複行爲。

什麼進入我的MainPage.xaml文件。

<Grid> 
    <Grid.Background> 
     <ImageBrush ImageSource="Assets/1.png"/> 
    </Grid.Background> 

    <Image Source="Assets/RightDoor.png" x:Name="rightdoor" HorizontalAlignment="Center" Height="1000" Margin="276,166,-2665,-398" VerticalAlignment="Top" Width="3755"> 
     <Image.RenderTransform> 
      <!--<CompositeTransform x:Name="ImageTransform"/>--> 
      <TransformGroup> 
       <TranslateTransform x:Name="rdformTranslate" X ="1" Y="1" /> 
       <ScaleTransform x:Name ="rdformScale" ScaleX=".25" ScaleY=".25" /> 
      </TransformGroup> 
     </Image.RenderTransform> 
    </Image> 

<ToggleButton x:Name="toggleButton" Content="ToggleButton" HorizontalAlignment="Left" Margin="493,572,0,0" VerticalAlignment="Top" Click="ToggleBtn"/> 
<Button Content="Button" HorizontalAlignment="Left" Margin="772,572,0,0" VerticalAlignment="Top" Click="BtnTest/> 
<ToggleSwitch Header="ToggleSwitch" HorizontalAlignment="Left" Margin="202,548,0,0" VerticalAlignment="Top" Toggled="ToggleButton"/> 
</Grid> 

MainPage.xaml.cs中文件

private void ToggleButton(object sender, Windows.UI.Xaml.RoutedEventArgs e) 
    { 
     Storyboard myStoryboard; 
     myStoryboard = (Storyboard)this.Resources["rdformTranslate"]; 
     myStoryboard.Begin(); 
    } 

    private void ToggleBtn(object sender, Windows.UI.Xaml.RoutedEventArgs e) 
    { 
     Storyboard myStoryboard; 
     myStoryboard = (Storyboard)this.Resources["rdformTranslate"]; 
     myStoryboard.Begin(); 
    } 

    private void BtnTest(object sender, Windows.UI.Xaml.RoutedEventArgs e) 
    { 
     Storyboard myStoryboard; 
     myStoryboard = (Storyboard)this.Resources["rdformTranslate"]; 
     myStoryboard.Begin(); 
    } 

資源字典文件...

<Storyboard x:Name="rdformTranslate"> 
    <DoubleAnimation Storyboard.TargetName="rdformTranslate" 
           Storyboard.TargetProperty="X" 
           From="0" To="500" Duration="0:0:1" 
           AutoReverse ="True" RepeatBehavior="Forever" /> 
</Storyboard> 

的應用程序能夠運行,但在點擊任何按鈕,它立即「崩潰」。我非常感謝解決問題的任何幫助。


編輯從評論

「System.Runtime.InteropServices.COMException」類型的異常出現在mscorlib.dll附加誤差,但在用戶代碼WinRT的信息沒有處理:E_NETWORK_ERROR附加信息:未指定的錯誤如果有這種異常的處理程序,程序可能會安全地繼續。

+0

如果崩潰是它給你一個錯誤?如果有,請隨時與我們分享。 –

+0

「System.Runtime.InteropServices.COMException」類型的異常出現在mscorlib.dll,但在用戶代碼中沒有處理 WinRT的信息:E_NETWORK_ERROR 其他信息:未指定的錯誤 如果有一個處理程序處理這個例外,該程序可能會安全地繼續。 – Edmund

回答

0

嘗試更改Storyboard的名稱並使其具有唯一性。我認爲應用程序崩潰時,您設置<DoubleAnimation Storyboard.TargetName="rdformTranslate"> 這是Storyboard相同的名稱。

此外,您無需爲翻譯變換對象命名以指定其屬性X。嘗試Storyboard.TargetProperty = "(UIElement.RenderTransform).(TranslateTransform.X)"。因爲您正在設置DoubleAnimationFrom屬性,所以您可能甚至不需要給X設置默認值。

您可以安全地用<RenderTransform><TranslateTransform/></RenderTransform>替換xaml中的<RenderTransform>...</RenderTransform>塊。

相關問題