2016-06-16 69 views
1

我希望能够在单击按钮时将网格翻译至页面底部。目前,我正在使用TranslateTransform来实现这个功能,但问题是我必须给出一个整数值,我必须将这个整数值转换为当容器高度发生变化时会发生变化的网格。我的故事板:将网格翻译至页面底部

<Storyboard x:Name="LowerChamberSlideDown"> 
    <DoubleAnimation Storyboard.TargetName="HeaderTrans" 
         BeginTime="0:0:1" 
         Storyboard.TargetProperty="Y" 
         To="288" 
         Duration="0:0:2"/> 
</Storyboard> 

我的网格:

 <Grid x:Name="LowerChamberHeader" 
       Grid.Row="0" 
       VerticalAlignment="Top"> 


      <Grid.RenderTransform> 
       <TranslateTransform x:Name="HeaderTrans" Y="0"></TranslateTransform> 
      </Grid.RenderTransform> 

      <TextBlock Text="Lower Chamber" 
         HorizontalAlignment="Left" 
         VerticalAlignment="Center" 
         Margin="15,0,0,0" 
         Foreground="White"/> 
      <Button Height="20" 
        HorizontalAlignment="Right" 
        Margin="0,0,10,0"> 
       <Button.Background> 
        <ImageBrush ImageSource="Assets/bmpExpandCollapse.bmp" 
           Stretch="Uniform"/> 
       </Button.Background> 
      </Button> 
      <Grid.Background> 
       <ImageBrush ImageSource="Assets/bmpBlueImage.bmp"/> 
      </Grid.Background> 
     </Grid> 

是否有使用VerticalAlignment属性在动画并将其设置为底部翻译电网的方法吗?

回答

0

我无法找到一个解决方案,也显示了电网对底部的很好的过渡因此我通过确定OnSizeChanged事件的屏幕高度,然后重新计算后面的代码中的LowerChamberSlideDown.To属性来解决此问题。

0

得到了下面的链接这样的回答: How to animate Margin property in WPF

<ObjectAnimationUsingKeyFrames Storyboard.TargetName="GroupTileSecond" 
           Storyboard.TargetProperty="HorizontalAlignment"> 

    <DiscreteObjectKeyFrame KeyTime="0:0:0"> 
     <DiscreteObjectKeyFrame.Value> 
      <HorizontalAlignment>Center</HorizontalAlignment> 
     </DiscreteObjectKeyFrame.Value> 
    </DiscreteObjectKeyFrame> 
</ObjectAnimationUsingKeyFrames> 

感谢,

杰西