问题描述
在我的WPF应用程序,我有希望出现一个用户操作完成后(保存数据,删除...)反馈控制。可见性被设置为隐藏的开始和样式设置为限定为一个资源的animateFadeOut式(见下文)。然后我想设置文本和控制能见度可见在我的C#code和具有反馈控制显示的消息,5秒后淡出,并保持隐藏(Visibility.Hidden)。
下面的XAML的工作,我第一次打电话control.Visiblity = Visibility.Visible但控制没有再出现第二次。我想,这是因为动画仍然在运行,其中有超过反馈控制的控制。然后我试图设置FillBehavior停止,但刚才的控制再次可见,我想它隐藏起来。然后,FillBehavior =停止,我试图设置一个触发时,不透明度= 0时,设置能见度隐藏。触发似乎没有火灾和我留下了可见控制动画完成一次后。
请帮忙指出我在做什么错在这里。
另外,如果你能提出一个更好的方式来显示5秒后变淡,并可以反复被称为控制,我会AP preciate它。
谢谢!
The problem is that after your animation completes your control still has Visibility=Visible, so it cannot be entered again.
I would rather use animation that does the whole thing, first shows the control, then hides it.
<Storyboard x:Key="animate">
<ObjectAnimationUsingKeyFrames BeginTime="0:0:0" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.2"/>
<DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/>
<ObjectAnimationUsingKeyFrames BeginTime="0:0:5.5" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Hidden</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
And use it as follows:
((Storyboard)FindResource("animate")).Begin(someControl);
这篇关于WPF淡出上的控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!