4
我想在圖像上通過動畫設置其高度屬性來擴展和契約ItemsSource。WPF動畫展開合同高度
我有一個通用的ItemsSource綁定到一個ObservableCollection,所以我不知道這個控件的總高度。
一旦圖像被點擊,它應該改變它的圖像源字形來顯示itemssource被展開。一旦它再次被點擊,ItemsSource應該開始從當前的高度縮回到0--因爲第一個動畫可能沒有完成。
目前,我有以下的圖像觸發:
<Image Name="ExpandImage" Source="ArrowDown.png">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.MouseLeftButtonDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Height"
Storyboard.TargetName="myItemsControl"
From="0" To="300" Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Image.Triggers>
</Image>
這是醜陋的,因爲它會以動畫方式固定高度 - 我需要它的動畫總(未知的高度)的ItemsControl的。此外,它只支持單向(擴展)動畫。
我的ItemsControl很簡單:
<ItemsControl Name="myItemsControl"
ItemsSource="{Binding Items}" Height="0" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<c:CustomUserControl/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>