我公司的一个应用程序通过以屏幕为中心的内容控件显示弹出窗口,该内容控件在需要时隐藏,并在其后面放置一个径向渐变矩形以阻止UI的其余部分,此外它看起来不错。我试图在显示矩形和弹出窗口时添加动画,而不是仅仅弹出。输入动画效果很好,但是当弹出窗口关闭时,从不调用退出动画,并且输入动画的效果保持不变。
我的XAML如下:
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Panel.ZIndex="999" DataContext="{Binding Source={x:Static popup:PopUpService.Instance}}" IsHitTestVisible="{Binding IsPopUpVisible}" Opacity="0">
<Rectangle Fill="{DynamicResource RadialBlackToBlack}" />
<ItemsControl Focusable="False" ItemsSource="{Binding PopUps}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsPopUpVisible, Source={x:Static popup:PopUpService.Instance}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="100" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="0" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
我做错了什么?
感谢。
答案 0 :(得分:1)
不透明度应设为1
而不是100
,这会导致问题。 (从100
到1
的动画不可见,从1
到0
的最后一位得到很少的动画时间。
也许你也想摆脱冗余:
Duration
放在Storyboards
和所有HoldEnd
上,这是默认设置。AutoReverse
?