【发布时间】:2013-08-14 13:02:32
【问题描述】:
我在Expander.Expanded 上实现了一些动画效果,但类似的动画在Expander.Collapsed 上不起作用。
XAML:
<Border Name="bor3" >
<Border.Triggers>
<EventTrigger RoutedEvent="Expander.Expanded" SourceName="exp3">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="0"
To="1"
Duration="0:0:0.25"
Storyboard.TargetName="gr3"
Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Expander.Collapsed" SourceName="exp3" >
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="1"
To="0"
Duration="0:0:0.25"
Storyboard.TargetName="gr3"
Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Border.Triggers>
<Expander Name="exp3">
<Grid Name="gr3">
<Grid.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="0"/>
</Grid.LayoutTransform>
<TextBlock >Test!</TextBlock>
</Grid>
</Expander>
</Border>
更新:
我在控制Style 旁边测试了Datatriggers,但也有同样的问题:
<Border Name="bor3" >
<Expander Name="exp3">
<Grid Name="gr3">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanded, RelativeSource={RelativeSource AncestorType=Expander}}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="0"
To="1"
Duration="0:0:0.25"
Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="1"
To="0"
Duration="0:0:0.25"
Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="0"/>
</Grid.LayoutTransform>
<TextBlock >Test!</TextBlock>
</Grid>
</Expander>
</Border>
问题是什么,解决方法是什么?!
【问题讨论】:
-
我试过你的代码......它似乎根本不起作用。
-
@Sheridan:要查看结果,请将一些内容放入网格中。我已经更新了 xaml。
-
我认为动画必须在
Collapsedevent 之前播放,但我不知道如何!有什么想法吗?