【发布时间】:2010-11-08 16:37:15
【问题描述】:
感谢this stackoverflow question 上的回答,我能够让以下动画正常工作,因此当我的 ViewModel 属性 PageToolBarVisible 的值导致工具栏淡入淡出时。 p>
问题是:
- 工具栏不透明度淡出,但它所占用的空间在淡出后仍然存在
- 初始工具栏状态与 ViewModel 属性的值不同步
但是如果可能的话,我如何在 XAML 本身中处理以下条件:
- 在工具栏(边框)淡出之后,我该怎么说“然后只有 Visibility=Collapsed”,(可能同时发生两个动画或链接动画如此可见=collapsed 发生在第一个动画之后),编辑:我在下面添加了 Trigger Opacity=0,效果很好
- 在工具栏淡入之前,我怎么说“Visibilty=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>
【问题讨论】:
标签: wpf xaml triggers animation