【发布时间】:2013-01-18 06:23:42
【问题描述】:
我正在尝试根据属性的值使网格“淡入”或“淡出”。该属性被调用,但动画似乎没有影响网格。我的网格和触发器如下所示:
<Grid Background="White"
Opacity="0">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsWaiting}"
Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickIn">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickIn" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding IsWaiting}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickOut">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="1"
To="0"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickOut" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<!-- etc -->
</Grid>
我的IsWaiting 属性如下所示:
public bool IsWaiting{
get { return _isWaiting; }
set {
_isWaiting = value;
OnPropertyChanged("IsWaiting");
}
}
属性更改时输出日志中没有绑定错误。我做错了什么?
【问题讨论】:
-
我只是复制粘贴了你的代码,它工作正常,我唯一改变的是持续时间,所以我可以看到它消失(我使用了
0:0:5) -
@sa_ddam213 天哪,你是对的。事实证明,还有另一个动画干扰了它。我将更新我上面的代码以包含干扰代码。如果您想发表回复,我可以将其标记为答案。
<Grid.Triggers>部分需要删除。