我花了大约一整天时间查看XAML故事板的示例,但WinRT / Windows8应用程序的工作方式与WPF相同(至少我认为),而且我都是困惑。 我想要的只是一个按钮,向左移动100px,单击时向上移动100px。我最难解决这个问题,而且我知道,一旦我得到了我想要工作的东西,我就可以在那里工作。
此外,如果有人可以教我如何使用" 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>
这是我试图搞乱故事板的一个例子。在我尝试执行它之前,这并没有出错,但它仍然无法正常工作。
答案 0 :(得分:1)
所以,WRT在某些方面有点不同,但很多都没有。
您想要做的是将您的Button
左右移动,然后在逻辑上将X
和Y
轴移到右边?所以在我看来,我认为RenderTransform
/ TranslateTransform
可以利用X
和Y
之类的;
<Button Click="StartTheMove">
<Button.RenderTransform>
<TranslateTransform x:Name="MoveFoo"/>
</Button.RenderTransform>
</Button>
现在我们有MoveFoo
并设置我们的转换,因为我知道WRT的唯一默认Routed.Event
是Loaded
我们无法做到这一点,所以与StartTheMove
类似的点击处理程序;
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
,我们就去告诉我们的转换我们想要X
和Y
的属性来声明一些新的属性(这是你的Storyboard.TargetProperty
加入这个有趣的事情)我们要将这两个属性的值设置为除了它们之外的其他属性,并且基本上告诉它我们希望它移动在我们的2d轴的Y
(向上)和{100}的X
(左)上向上100px。对于你希望效果发生的快/慢,你也可能想要使用关键时间。
虽然我没有时间对此进行测试,并且在我离开办公室之前将其放在一起,但我们一直都在你身边,希望它有所帮助。您还应该能够添加交互行为,以利用您可能更习惯的相同类型的事件触发器(see tutorials)并处理您的事件,从而抛弃处理程序代码。< / p>
然而,希望这会有所帮助,如果不是,我会在早上再次看到它并再次刺伤它。干杯!