0
我公司的一個應用程序通過以屏幕爲中心的內容控件顯示彈出窗口,該內容控件在需要時隱藏起來,並在其後面放置一個徑向漸變矩形以阻止其餘部分用戶界面,加上它看起來不錯。我正在嘗試爲矩形和彈出窗口顯示時添加動畫,而不是彈出。輸入動畫效果很好,但當我的彈出窗口關閉時,從不調用退出動畫,並且輸入動畫的效果保持不變。EnterActions動畫不停止,ExitActions動畫未啓動
我的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>
它是什麼,我做錯了嗎?
謝謝。
但是,當IsPopUpVisible變爲false時,觸發條件不再滿足,退出動畫應該觸發,不是嗎? IsPopUpVisible不會使彈出窗口立即隱藏,我打算通過將不透明度設置爲0來退出動畫。 –
@SoManyGoblins:編輯了我的答案,我觀察到代碼中的一些重大延遲,因爲動畫從'100 '到'0',只有在'1'時可以看到一個區別(有效範圍是'0'到1'),但最終它確實使網格不可見。 –