DoubleAnimation을 사용하여 StackPanel의 높이 속성을 변경하려고합니다. 이 코드는 예외를 throw하지 않습니다. 그러나 애니메이션이 작동하지 않습니다.스토리 보드 DoubleAnimation이 StackPanel 높이 속성과 함께 작동하지 않습니다.
<StackPanel x:Name="FlyoutContent">
<StackPanel.Resources>
<Storyboard x:Name="HideStackPanel">
<DoubleAnimation Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="190" To="0" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
<Storyboard x:Name="ShowStackPanel">
<DoubleAnimation Storyboard.TargetName="ChangePasswordPanel" Storyboard.TargetProperty="Height" From="0" To="190" Duration="0:0:1">
<DoubleAnimation.EasingFunction>
<PowerEase EasingMode="EaseIn"></PowerEase>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</StackPanel.Resources>
<TextBlock Margin="0, 20, 0, 0" FontWeight="Bold" Text="Change Current Password" TextWrapping="Wrap" Style="{StaticResource BasicTextStyle}" HorizontalAlignment="Left" IsTapEnabled="True" Tapped="ChangePasswordHeader_Tapped"/>
<StackPanel x:Name="ChangePasswordPanel" Margin="0, 5, 0, 0" Height="0">
C# 이벤트 처리기
private void ChangePasswordHeader_Tapped(object sender, TappedRoutedEventArgs e)
{
if (ChangePasswordPanel.Height == 0)
{
ShowStackPanel.Begin();
}
else
{
HideStackPanel.Begin();
}
}
그것은 ChangePasswordHeader_Tapped 이벤트 핸들러에 충돌 예상대로 ShowStackPanel.Begin 또는 HideStackPanel.Begin 문을 실행할 수 없습니다. 그러나 출력에는 아무런 영향을 미치지 않습니다. StackPanel의 높이는 단지 0에 머물러 있습니다.
무슨 일이 일어나고 있는지 어떤 생각이 있으십니까 ??
StackPanel 대신 Grid를 사용할 수 있습니다. – Clemens
Grid를 사용할 때와 같은 결과가 나타납니다. 애니메이션이 작동하지 않습니다. –
Width 속성과 동일한 문제와 동일한 문제가 있습니다. –