我有一个 DataTrigger,它根据 bool 值运行 Storyboard
<DataTrigger Binding="{Binding Path=IsValid}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
...
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
因此,当 IsValid = true 时,我的 Storyboard就会运行。这工作正常。但问题是: 当我的 IsValid = true 时,我希望我的 Storyboard重新运行。我的 IsValid 看起来像这样:
private bool _isValid = false;
public bool IsValid
{
set {
_isValid = value;
OnPropertyChanged("IsValid")
}
}
我知道我的 Storyboard必然是真实的,但是有没有办法重新启动该死的东西并让 Storyboard在每次我在 ViewModel 代码中使用 IsValid = true 时重新启动?
最佳答案
问题是你的 Storyboard永远不会停止。您需要为 BeginStoryboard
命名,并添加 ExitActions
部分:
<DataTrigger Binding="{Binding Path=IsValid}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="sb">
<Storyboard>
...
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="sb" />
</DataTrigger.ExitActions>
</DataTrigger>
关于c# - WPF:使用数据触发器/ bool 值重新启动 Storyboard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237937/