Это сценарий: у меня есть Grid
и Button
. Сетка имеет логическое свойство Show
. Когда пользователь нажимает кнопку, если Show=false
, то сетка становится Visible
. и когда Show=true
Grid становится Collapse
. при изменении видимости я делаю анимацию для сетки Height
с помощью StoryBoard
. ХОРОШО. все хорошо. когда пользователь нажимает кнопку, появляется Grid
с анимацией. но при повторном щелчке анимация не отображается, а происходит просто Collapse. Это мой код:
Storyboard growUpStory = new Storyboard();
Storyboard growDownStory = new Storyboard();
DoubleAnimation growUp, growDown;
В любом методе:
height = Container.DesiredSize.Height;
growUp = new DoubleAnimation
{
From = 0,
To = height > MaxHeight ? MaxHeight : height,
Duration = new Duration(TimeSpan.FromSeconds(1)),
AutoReverse = false
};
Container.Visibility = Visibility.Collapsed;
growDown = new DoubleAnimation
{
From = height > MaxHeight ? MaxHeight : height,
To = 0,
Duration = new Duration(TimeSpan.FromSeconds(1)),
AutoReverse = false
};
growUpStory.Children.Add(growUp);
growDownStory.Children.Add(growDown);
и когда я вызываю событие:
if (Show)
{
Storyboard.SetTarget(growUpStory, Container);
Storyboard.SetTargetProperty(growUpStory, new PropertyPath(Grid.HeightProperty));
growUpStory.Begin();
Container.Visibility = Visibility.Visible;
}
else
{
Storyboard.SetTarget(growDownStory, Container);
Storyboard.SetTargetProperty(growDownStory, new PropertyPath(Grid.HeightProperty));
growDownStory.Begin();
Container.Visibility = Visibility.Collapsed;
}
Я пробовал много способов, но не смог Решить. Где моя проблема? есть идеи? спасибо.
- Я не могу использовать
XAML
здесь