WPF。如何通过具有约束力的停止数据触发动画? [英] WPF. How to stop data trigger animation through binding?
问题描述
在WPF工具包DataGrid中我有一个绑定到电池单元的不透明数据触发。
在 UpVisibility
更改为1的路径变得可见,动画开始褪色为0。其中一期工程。
不过我现在的问题 - 如果我需要prematurely停止/取消衰落和正在设置 UpVisibility
0的路径仍然可见,衰落什么都没有发生....
如何使用即时对象myvalue的砸不透明度为0?
<路径数据=M 5,0 0,10 10,10HEIGHT =10WIDTH =10填充=绿色不透明度={结合myvalue的[0] .UpVisibility}保证金=5,0,5,0>
< Path.Style>
<样式和GT;
< Style.Triggers>
< DataTrigger绑定={结合myvalue的[0] .UpVisibility}VALUE =1.0>
< DataTrigger.EnterActions>
< BeginStoryboard>
<情节提要>
< DoubleAnimation是Storyboard.TargetProperty =透明度从=1.0为了=0.0时长=0:0:10/>
< /故事板>
< / BeginStoryboard>
< /DataTrigger.EnterActions>
< / DataTrigger>
< /Style.Triggers>
< /样式和GT;
< /Path.Style>
< /路径和GT;
你有没有尝试过这样的事情(例如未经测试):
<路径数据=M 5,0 0,10 10,10HEIGHT =10WIDTH =10填充=绿色不透明度={结合myvalue的[0] .UpVisibility}保证金=5,0,5,0>
< Path.Style>
<样式和GT;
< Style.Triggers>
< DataTrigger绑定={结合myvalue的[0] .UpVisibility}VALUE =1.0>
< DataTrigger.EnterActions>
< BeginStoryboard>
<情节提要>
< DoubleAnimation是Storyboard.TargetProperty =透明度从=1.0为了=0.0时长=0:0:10/>
< /故事板>
< / BeginStoryboard>
< /DataTrigger.EnterActions>
< DataTrigger.ExitActions>
< BeginStoryboard>
<情节提要>
< DoubleAnimation是Storyboard.TargetProperty =不透明度为=0.0时长=0:0:0/>
< /故事板>
< / BeginStoryboard>
< /DataTrigger.ExitActions>
< / DataTrigger>
< /Style.Triggers>
< /样式和GT;
< /Path.Style>
< /路径和GT;
我的动画时间设置为0是瞬间。如果你没有定义你指导WPF到当前的DependencyProperty值开始从属性,所以它会平稳过渡。
In WPF toolkit datagrid I have a data trigger bound to opacity of cell element.
When UpVisibility
changes to 1 the path become visible and the animation starts to fade it to 0. Which works.
However my problem now - if I need to prematurely stop/cancel the fading and am setting UpVisibility
to 0 the Path is still visible and fading as nothing happened....
How to drop opacity to 0 instantly using MyValue object ?
<Path Data="M 5,0 0,10 10,10" Height="10" Width="10" Fill="Green" Opacity="{Binding MyValue[0].UpVisibility}" Margin="5,0,5,0">
<Path.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding MyValue[0].UpVisibility}" Value="1.0">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:10" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
Have you tried something like this (untested example):
<Path Data="M 5,0 0,10 10,10" Height="10" Width="10" Fill="Green" Opacity="{Binding MyValue[0].UpVisibility}" Margin="5,0,5,0">
<Path.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding MyValue[0].UpVisibility}" Value="1.0">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:10" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.0" Duration="0:0:0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
I set the animation duration to 0 to be instant. And if you don't define the From property you are instructing WPF to start in the current DependencyProperty value, so it will transition smoothly.
这篇关于WPF。如何通过具有约束力的停止数据触发动画?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!