1
我想讓WPF UI元素在其Visibility屬性過渡到「可見」時垂直展開。我不想在動畫中對高度進行硬編碼,因爲我想將此動畫應用到任何UI元素作爲樣式。所以,我試圖使用ScaleY,但沒有任何運氣。這裏是樣式的XAML和列表框:如何在元素變爲可見時動畫ScaleY
<Style x:Key="VerticalGrow" TargetType="ListBox">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="TransformGroup.ScaleTransform.ScaleY" BeginTime="0:0:0.5" From="0" To="1" Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
<ListBox Grid.Row="2" MaxHeight="60" MinHeight="60" Visibility="{Binding MyViewModel.ListBoxVisibility}" IsSynchronizedWithCurrentItem="False" ItemsSource="{Binding MyViewModel.ListBoxItems}" Style="{DynamicResource VerticalGrow}" IsTabStop="True">
</ListBox>
我得到一個運行時異常抱怨:
「無法在屬性‘風格’值轉換爲類型的「對象System.Windows.Style '。無法解析屬性路徑'TransformGroup.RenderTransform.ScaleTransform.ScaleY'中的所有屬性引用。驗證適用對象是否支持屬性。標記文件'MyApp; component/mainwindow'中的對象'System.Windows.Controls.ListBox'出錯.xaml'Line 69 Position 399.「}
謝謝。儘管現在我知道我的動畫並不完全符合我的想法,但這與您的答案無關。 – Emmanuel 2010-06-22 12:37:38