基本上,如何使用按钮激活简单的故事板动画,而不是让它自动播放?我在这里尝试普通按钮,切换按钮和切换开关,但没有一个工作。
我打算在点击按钮时向右移动一个门的图像,并在再次单击时向左移动。它应该在点击时无限期地重复这种行为。
我的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>
应用程序能够运行,但点击任何按钮后,它立即“崩溃”。我非常感谢你解决这个问题的任何帮助。
修改评论中添加的错误
mscorlib.dll中发生了'System.Runtime.InteropServices.COMException'类型的异常,但未在用户代码WinRT信息中处理:E_NETWORK_ERROR其他信息:未指定的错误如果存在此异常的处理程序,则程序可能是安全地继续。
答案 0 :(得分:0)
尝试更改Storyboard
的名称并使其唯一。我认为当您设置<DoubleAnimation Storyboard.TargetName="rdformTranslate">
时应用会崩溃
与Storyboard
的名称相同。
此外,您无需为转换变换对象指定名称以定位其X
属性。试试Storyboard.TargetProperty = "(UIElement.RenderTransform).(TranslateTransform.X)"
。您可能甚至不需要为X
提供默认值,因为您设置了From
的{{1}}属性。
您可以使用DoubleAnimation
安全地替换xaml中的<RenderTransform>...</RenderTransform>
块。