Wpf 如何制作XAML动画使元素在淡出后消失
多亏了上的答案,我能够使以下动画正常工作,因此当我的ViewModel属性PageToolBarVisible的值导致工具栏淡入淡出时 问题是:Wpf 如何制作XAML动画使元素在淡出后消失,wpf,xaml,triggers,animation,Wpf,Xaml,Triggers,Animation,多亏了上的答案,我能够使以下动画正常工作,因此当我的ViewModel属性PageToolBarVisible的值导致工具栏淡入淡出时 问题是: 工具栏不透明度会淡出,但它所占用的空间在淡出后仍然存在 初始工具栏状态与ViewModel属性的值不同步 但如果可能的话,如何在XAML中处理以下条件: 当工具栏(边框)淡出后,我该如何说“然后才可见=折叠”(可能两个动画同时发生,或者链接动画如此可见=折叠发生在第一个动画之后),编辑:我在下面添加了触发器不透明度=0,效果非常好 在工具栏淡入之
- 工具栏不透明度会淡出,但它所占用的空间在淡出后仍然存在
- 初始工具栏状态与ViewModel属性的值不同步
- 当工具栏(边框)淡出后,我该如何说“然后才可见=折叠”(可能两个动画同时发生,或者链接动画如此可见=折叠发生在第一个动画之后),编辑:我在下面添加了触发器不透明度=0,效果非常好
- 在工具栏淡入之前,如何说“Visibility=Normal”
- 如何不仅将这些事件附加到视图加载过程,而且在页面首次出现时显示正确的状态(淡入或淡出)
<Style x:Key="PageToolBarStyle" TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding PageToolBarVisible}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0.0"
To="1.0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="1.0"
To="0.0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
<Trigger Property="Opacity" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
<Window.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<EventTrigger.Actions>
...how can I tell it here to "do the trigger logic contained in "PageToolBarStyle"...
</EventTrigger.Actions>
</EventTrigger>
</Window.Triggers>
…我如何在这里告诉它“执行“PageToolBarStyle”中包含的触发逻辑”。。。
您可以为相关元素的不透明度创建一个触发器。一旦该触发器为“0”,您就可以设置元素的可见性。这应该可以处理上面的第一点和第二点
至于第三点……若我理解正确,那个么就有一个FrameworkElement.Loaded事件,你们可以用它来解决第一次加载视图时运行动画的问题。FraneworkElement.Loaded应该是Window.Triggers的一部分。至于不透明触发器,我不确定为什么不起作用ve是向完成的事件添加一个方法来设置代码隐藏中的可见性(但我知道您希望将其保留在XAML中)我添加了两个建议,第一个(触发器不透明度=0)效果很好,但第二个(frameworkelement.loaded)导致错误,它需要精确到哪里?好的,我把Windows.Triggers放在上面显示的位置,但是我如何告诉它“执行”PageToolBarStyle中包含的触发逻辑?如果您将情节提要创建为资源。。。然后你可以直接调用资源。但我不想调用情节提要FadeIn或情节提要FadeOut,我想调用样式,以便它执行此逻辑,然后自己适当地选择要执行的情节提要(ViewModel属性在启动时可能为true或false)。