Переместить сетку в нижнюю часть страницы

Я хочу иметь возможность переводить сетку в нижнюю часть страницы при нажатии кнопки. В настоящее время я использую 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 в анимации и установить его внизу, чтобы перевести сетку?


person Tehreem    schedule 16.06.2016    source источник


Ответы (2)


Получил этот ответ по следующей ссылке: Как анимировать свойство Margin в WPF

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

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

Спасибо,

Джесси

person Victory Jessie    schedule 16.06.2016

Я не смог найти решение, которое также показывает хороший переход сетки в нижнюю часть экрана, поэтому я решил эту проблему, определив высоту экрана в событии OnSizeChanged, а затем пересчитав свойство LowerChamberSlideDown.To из кода позади.

person Tehreem    schedule 26.06.2016