【问题标题】:How to animate multiple buttons in Windows Phone 8如何在 Windows Phone 8 中为多个按钮设置动画
【发布时间】:2013-09-27 17:19:32
【问题描述】:

我正在开发一个 Windows 手机游戏应用程序,我需要在某些事件上为多个按钮设置动画,比如 Page_loaded。我能做到的是

<Storyboard Storyboard.TargetName="scaButton" Storyboard.TargetProperty="Angle" >
            <DoubleAnimation Storyboard.TargetProperty="ScaleY" 
                     From="-1" To="1"                                                           
                     BeginTime="0:0:0"
                     Duration="0:0:0.5"
                     AutoReverse="False" />
        </Storyboard>

并且在 XAML 中的单个按钮中

<Button Height="100" Width="200" Margin="10,495,270,103" Content="{Binding Path=ListOfValues[0]}" RenderTransformOrigin="0.5,0.5" Click="Button_Click">
            <Button.RenderTransform>
               <ScaleTransform x:Name="scaButton" ScaleX="1" ScaleY="1" CenterX="50" CenterY="25" />
            </Button.RenderTransform>
        </Button>

但问题是我如何为多个按钮定义它。我希望所有按钮同时翻转动画。但是我该如何实现呢?

请帮忙。 在 windows 中,电话 &lt;Style.Triggers&gt; 也不存在。

【问题讨论】:

  • 您必须为每个按钮创建故事板。因为不可能为一个故事板设置多个目标。
  • @MuhammadUmar 这就是我实现的想法,但由于所有按钮的动画效果都相同,是否没有单一的解决方案可以同时为所有按钮设置动画?知道如何实现按钮的翻转动画吗?

标签: c# button windows-phone-8


【解决方案1】:

您可以通过在 DoubleAnimation 中设置 TargetName 来完成此操作

<Grid.Resources>
    <Storyboard x:Name="FlipButtonStory">
        <DoubleAnimation Storyboard.TargetName="scaButton1"
                 Storyboard.TargetProperty="ScaleY" 
                 From="-1" To="1"                                                           
                 BeginTime="0:0:0"
                 Duration="0:0:0.5"
                 AutoReverse="False" />
        <DoubleAnimation Storyboard.TargetName="scaButton2"
                 Storyboard.TargetProperty="ScaleY" 
                 From="-1" To="1"                                                           
                 BeginTime="0:0:0"
                 Duration="0:0:0.5"
                 AutoReverse="False" />
        <DoubleAnimation Storyboard.TargetName="scaButton3"
                 Storyboard.TargetProperty="ScaleY" 
                 From="-1" To="1"                                                           
                 BeginTime="0:0:0"
                 Duration="0:0:0.5"
                 AutoReverse="False" />
    </Storyboard>
<Grid.Resouces>

您可以通过调用BeginStoryboard 方法开始故事。

FlipButtonStory.BeginStoryboard();

【讨论】:

  • 感谢您的更新,但通过这个答案,我知道没有适用于页面中所有按钮的单一解决方案。无论如何,这工作正常。我唯一需要添加的是&lt;Button.RenderTransform&gt; &lt;ScaleTransform x:Name="scaButton4" ScaleX="1" ScaleY="1" CenterX="75" CenterY="50" /&gt; &lt;/Button.RenderTransform&gt;
猜你喜欢
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多