2016-06-16 68 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> 

感謝,

傑西