Xaml WP8.1转换操作时的故事板缩放

Xaml WP8.1转换操作时的故事板缩放,xaml,animation,storyboard,windows-phone-8.1,Xaml,Animation,Storyboard,Windows Phone 8.1,我正在使用C#for Windows Phone 8.1 我所拥有的:我拖动一个透明(不可见,但可访问)滑块,网格通过TranslateX操作沿着滑块的路径移动: <Grid Opacity="1" x:Name="innerGrid" HorizontalAlignment="Left" Margin="4,0,0,0"> <Grid.RenderTransform> <CompositeTransform TranslateX="{Binding

我正在使用C#for Windows Phone 8.1

我所拥有的:我拖动一个透明(不可见,但可访问)滑块,网格通过
TranslateX
操作沿着滑块的路径移动:

<Grid Opacity="1" x:Name="innerGrid" HorizontalAlignment="Left" Margin="4,0,0,0">
  <Grid.RenderTransform>
     <CompositeTransform TranslateX="{Binding transXexact}" />
  </Grid.RenderTransform>

  [... stuff inside Grid ...]

</Grid>
<Slider x:Name="sliderPercent2" Minimum="0" Maximum="100" Value="0" Opacity="0" Style="{StaticResource customSliderBigOverlay}" ValueChanged="sliderPercent_ValueChanged" ManipulationMode="TranslateX" ManipulationStarted="sliderPercent2_ManipulationStarted" ManipulationCompleted="sliderPercent2_ManipulationCompleted" />
现在这一切都很好,但我想更进一步。现在我还希望
innerGrid
放大到0。因此,我需要
ScaleX
ScaleY
。我可以使用以下代码将其添加到情节提要:

var xAnim = new DoubleAnimation();
var yAnim = new DoubleAnimation();
xAnim.Duration = TimeSpan.FromMilliseconds(300);
yAnim.Duration = TimeSpan.FromMilliseconds(300);
xAnim.To = 1;
yAnim.To = 1;
Storyboard.SetTarget(xAnim, innerGrid);
Storyboard.SetTarget(yAnim, innerGrid);
Storyboard.SetTargetProperty(xAnim, "(UIElement.RenderTransform).(CompositeTransform.ScaleX)");
Storyboard.SetTargetProperty(yAnim, "(UIElement.RenderTransform).(CompositeTransform.ScaleY)");
但当我移动滑块时,它不会在X方向上平移,而只是在开始操纵时的位置上放大到0


我想要的是:在仍然应用
TranslateX
操作的情况下,通过动画将网格缩放为0,这样网格在缩小时会跟随我的移动。

技巧与预期一样简单-只需在淡出
网格
上放置另一个
网格
,并分别为这些网格设置动画

var xAnim = new DoubleAnimation();
var yAnim = new DoubleAnimation();
xAnim.Duration = TimeSpan.FromMilliseconds(300);
yAnim.Duration = TimeSpan.FromMilliseconds(300);
xAnim.To = 1;
yAnim.To = 1;
Storyboard.SetTarget(xAnim, innerGrid);
Storyboard.SetTarget(yAnim, innerGrid);
Storyboard.SetTargetProperty(xAnim, "(UIElement.RenderTransform).(CompositeTransform.ScaleX)");
Storyboard.SetTargetProperty(yAnim, "(UIElement.RenderTransform).(CompositeTransform.ScaleY)");