高さプロパティをアニメーション化することにより、ItemsSource を拡大および縮小する画像にトリガーを設定したいと考えています。
ObservableCollection にバインドされたジェネリック ItemsSource があるため、このコントロールの合計の高さがわかりません。
画像をクリックすると、画像ソースのグリフが変更され、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>