X,Yanimation故事板上的button点击Windows8的应用程序

我花了整整一天的时间来研究XAML故事板的例子,但是WinRT / Windows8应用程序不能像WPF那样工作(至less我认为),而且我都很困惑。 我所需要的是一个button,点击时向左移动100px,向上移动100px。 我正在最难的时候弄明白这一点,而且我知道,一旦我find了我想要工作的东西,我就可以从那里工作。

另外,如果任何人都可以教我如何使用“Storyboard.TargetProperty”那真是太棒了。

<Rectangle Name="Rectangle01" Height="100" Width="100" Fill="Red"> <Rectangle.Resources> <Storyboard x:Name="myboard"> <DoubleAnimation Storyboard.TargetName="Rectangle01" Storyboard.TargetProperty="Width" From="100" To="3600" Duration="0:0:6" /> </Storyboard> </Rectangle.Resources> </Rectangle> 

这里有一个我尝试做的事情的例子,只是乱七八糟的故事板。 这直到我试图执行它没有抛出一个错误,但它仍然无法正常工作。

所以,WRT在某些方面有点不同,但很多不是。

你想要做的是把你的Button左右移动,然后在X轴和Y轴上左右移动? 所以在我看来,我认为RenderTransform / TranslateTransform可以利用XY ;

 <Button Click="StartTheMove"> <Button.RenderTransform> <TranslateTransform x:Name="MoveFoo"/> </Button.RenderTransform> </Button> 

所以现在我们有了MoveFoo并且设置了我们的Transform,并且由于WRT所知道的唯一的默认Routed.EventLoaded ,所以我们不能这样做,所以用StartTheMove绑定Click处理器。

 private void StartTheMove(object sender, RoutedEventArgs e) { MoveTheButton.Begin(); } 

所以现在我们已经得到了我们的处理程序,我们要发射MoveTheButton ,这将是你的实际故事板设置为一个资源,在你的window.resources或任何类似的地方;

 <Storyboard x:Name="MoveTheButton"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="MoveFoo" Storyboard.TargetProperty="Y"> <SplineDoubleKeyFrame KeyTime="0:0:1.25" Value="100" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="MoveFoo" Storyboard.TargetProperty="X"> <SplineDoubleKeyFrame KeyTime="0:0:1.25" Value="-100" /> </DoubleAnimationUsingKeyFrames> </Storyboard> 

所以一旦我们打开Storyboard它就会去告诉我们的变换,我们希望XY的属性得到一些新的属性声明(这是你的Storyboard.TargetProperty来加入乐趣),我们要设置将这两个属性的值赋值给它们之外的东西,基本上告诉它,我们希望它在我们的2d轴的X (左边)的Y (上)和-100px上移动100px。 你也可能想要与关键时间一起玩,无论快/慢你想要的效果发生。

虽然我没有时间来测试这个,而且在我离开办公室之前就把它扔在一起,我们都已经到了你所在的地方,希望它有帮助。 您还应该能够添加交互行为,以利用您可能更习惯的相同类型的事件触发器( 请参阅教程 ),并以这种方式处理事件,从而抛弃您的处理程序代码。

但是,希望这有助于,如果不是,我会在早上再次看到它,并将再次刺伤它。 干杯!