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

덕분에 나는 또한 하단에 그리드의 좋은 변화를 보여주고 해결책을 찾을 수 없습니다

관련 문제