如何在Windows Phone 8.1 RT应用程序中为控件添加倾斜效果?

时间:2014-06-18 06:24:41

标签: windows-phone-8.1 windows-rt

我正在使用Windows Phone 8.1 RT框架开发应用程序。有一些网格控件我想添加倾斜效果。我该怎么做?

1 个答案:

答案 0 :(得分:5)

在Windows运行时中,您可以使用一些不错的动画来实现此目的 - 参考at MSDN。您无法实现目标:

  1. 最简单的方法是将 Grid 放在按钮控件中,该控件默认具有 Tilt 效果。您还可以轻松使用按钮的自定义样式 - reference at this answer

  2. 您可以设计自己的 Control 并使用VisualStateManager.GoToState在状态之间切换。 Here at MSDN是一个很好的简短例子。

  3. 您可以使用主题动画定义 Storyboard ,并在指针按下/释放时Begin()。一个简短的例子:

    在XAML中:

    <Grid Name="animatedGrid" PointerPressed="animatedGrid_PointerPressed" PointerReleased="animatedGrid_PointerReleased">
      <Grid.Resources>
        <Storyboard x:Name="animateUp">
            <PointerUpThemeAnimation TargetName="animatedGrid" />
        </Storyboard>
        <Storyboard x:Name="animateDown">
            <PointerDownThemeAnimation TargetName="animatedGrid" />
        </Storyboard>
      </Grid.Resources>
      <Rectangle Fill="Tomato" Width="200" Height="200"/>
    </Grid>
    

    在代码背后:

    private void animatedGrid_PointerPressed(object sender, PointerRoutedEventArgs e)
    {
        animatedGrid.Projection = new PlaneProjection();
        animateDown.Begin();            
    }
    
    private void animatedGrid_PointerReleased(object sender, PointerRoutedEventArgs e)
    {
        animateUp.Begin();
    }
    
  4. 上面的示例涵盖了in this questionfound workaround by Jerry Nixon - MSFT指出的一些奇怪的行为。