Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据当前状态设置双值动画_C#_Wpf_Xaml_Animation - Fatal编程技术网

C# 根据当前状态设置双值动画

C# 根据当前状态设置双值动画,c#,wpf,xaml,animation,C#,Wpf,Xaml,Animation,我想使用DoubleAnimation在鼠标上方根据其当前值设置double-dependencProperty动画。为了简单起见,让我们假设我想设置ListBoxItem的动画,使其在鼠标悬停在ListBoxItem上时稍微向右移动,并在移除鼠标时向后移动 首先,我在鼠标悬停触发器的进入操作和退出操作中定义了和。如果我将鼠标悬停在对象上足够长的时间,这很好,但是如果我通过移动鼠标中断第一个动画,第二个动画将比第一个动画运行更长的时间。因此,在完成所有动画后,对象的位置会稍微偏移 我可以在脚本中

我想使用
DoubleAnimation
在鼠标上方根据其当前值设置double-
dependencProperty
动画。为了简单起见,让我们假设我想设置ListBoxItem的动画,使其在鼠标悬停在ListBoxItem上时稍微向右移动,并在移除鼠标时向后移动

首先,我在鼠标悬停触发器的
进入操作
退出操作
中定义了
。如果我将鼠标悬停在对象上足够长的时间,这很好,但是如果我通过移动鼠标中断第一个动画,第二个动画将比第一个动画运行更长的时间。因此,在完成所有动画后,对象的位置会稍微偏移

我可以在脚本中使用
fillbehavior=“Stop”
在所有动画完成后修复对象的状态。但是,这会使对象弹回到原来的位置,这显然看起来很恼人

我想做的是在第二个
DoubleAnimation
中指定
to
-属性作为我的属性的原始值。这最初是由一个
转换器
计算的,因此我尝试将该属性绑定到已经存在的
转换器
。由于线程问题,这会抛出一个错误(虽然一开始我很惊讶,但谷歌很好地解释了原因)。我甚至找到了一篇关于这个()的帖子,也许可以修改它以适应我的情况。然而,这感觉像是一个“黑客”解决方案


问题:我觉得我的想法不够直截了当。我只想在鼠标上方“移动”一个对象,然后再“移动”回来。有没有一种简单的方法可以做到这一点?

正如Sinatr在评论中指出的那样,只需在
退出中定义
(通过=“-5”
跳过
)。这将默认为初始值,而不是动画中当前使用的值。

正如Sinatr在评论中指出的那样,只需在
退出操作中定义
(通过=“-5”
跳过
)。这将默认为初始值,而不是动画中当前使用的值。

如果未将
指定为
,则使用实际值(设置的值,而不是保留中动画设置的值)。试试看是否有效。如果没有,则使用停止/保持的组合-进入动作动画保持其动画,而退出则停止。在退出操作中,指定
执行都没有起作用。谢谢-这比预期的要简单!如果未将
指定为
,则将使用实际值(设置的值,而不是由“保持”中的动画设置的值)。试试看是否有效。如果没有,则使用停止/保持的组合-进入动作动画保持其动画,而退出则停止。在退出操作中,指定
执行都没有起作用。谢谢-这比预期的要简单!如果未将
指定为
,则将使用实际值(设置的值,而不是由“保持”中的动画设置的值)。试试看是否有效。如果没有,则使用停止/保持的组合-进入动作动画保持其动画,而退出则停止。在退出操作中,指定
执行都没有起作用。谢谢-这比预期的要简单!