2013-10-06 72 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>块。

相关问题