我想创建一个动画控件,它根据cue(按空间)来改变不透明度。WPF不透明度动画设置控件IsEnabled = false
动画本身正常工作。基于按键,不透明动画和控制进入视野。我把动画放在一个包含其余内容的网格控件上。
问题是这样的:动画完成后,网格的IsEnabled属性仍然为“假”,即使手动(从代码隐藏)将其设置为true后。该命令不会引发异常,但实际上也不会更改属性。
当我再次运行相同的动画,但相反,该值实际上确实变为“真”。但当然,这一刻已经渐渐淡出。
void Initialize()
{
// fade animation storyboard
FadeAnimation = new DoubleAnimation(0.0, 1.0,
new Duration(TimeSpan.FromSeconds(0.7)))
{ FillBehavior = FillBehavior.HoldEnd };
FadeStoryboard.Children.Add(FadeAnimation);
Storyboard.SetTargetName(FadeAnimation, grid.Name);
Storyboard.SetTargetProperty(FadeAnimation,
new PropertyPath(Grid.OpacityProperty));
}
// flipping the animation around
void InputManager_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
if (!ViewModel.IsActive)
{
FadeAnimation.From = grid.Opacity;
FadeAnimation.To = 1.0;
FadeStoryboard.Begin(this);
ViewModel.IsActive = true;
}
else if (ViewModel.IsActive)
{
FadeAnimation.From = grid.Opacity;
FadeAnimation.To = 0.0;
FadeStoryboard.Begin(this);
ViewModel.IsActive = false;
}
}
}
[编辑] 通过一些额外的调试我发现,那就是积极集启用为false淡入动画,并将其设置为true,当它淡出,这是完全相反的我想要它做什么。
[编辑2] 当我完全抛弃动画并简单地将可见性更改为隐藏或隐藏时,我遇到了完全相同的问题。当我将它隐藏起来时,它会启用,当我使其可见时禁用它。
你真正的问题是什么? – Terry 2013-04-29 08:10:06
“IsEnabled”拒绝成为真实。动画是有效的,但我的事件都没有。 – 2013-04-29 08:12:26